error CS0266: Cannot implicitly convert type `double' to `float'. An explicit conversion exists (are you missing a cast?) whats wrong?

hello i am making a spawner with timers and this error popped up i dont get it so do you guys know the answers here is my script and the error is: error CS0266: Cannot implicitly convert type double' to float’. An explicit conversion exists (are you missing a cast?)

using UnityEngine;
using System.Collections;

public class spawner : MonoBehaviour {

	public float WaitTime;
	public GameObject Box;
	public float DifChangeTime;

	private float Timer;
	private float DifTimer;

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		Timer += Time.deltaTime;
		if (Timer > WaitTime) {
			transform.position = new Vector3 (Random.Range (197, 204), 30, Random.Range (155, 162));
			Timer = 0;
			Instantiate (Box, transform.position, Quaternion.identity);
		}
		if(DifTimer > DifChangeTime) {
			WaitTime = WaitTime - 0.5;
			DifTimer = 0;
		}
		if (WaitTime > 0.5) {
			DifTimer += Time.deltaTime;
		} else {
			DifTimer = 0;
		}
	}
}

thanks for helping

WaitTime is a float but 0.5 is a double. Both are not the same type so they cannot be compared.

0.5f with the f extension makes it s float. This is only necessary when using a dot.

 WaitTime = WaitTime - 0.5f;
 if (WaitTime < 0.5f)