Error when colliding and calling a IEnumerator

So I have code here and in the console the error says:

  1. The best overload method match for 'UnityEngine.WaitForSeconds(float)' has some invalid arguments
  2. Argument '#1' cannot convert 'double' expression to type 'float'
Basically I want the character to have is where he drops when you collide with the surface of the water and sink back down. This is what I have so far:`using UnityEngine; using System.Collections;
public class FloatDown : MonoBehaviour {
  	public bool gravity = false;

	// Use this for initialization
	void Start () {
		rigidbody2D.gravityScale = 0;
	}

	IEnumerator grav(){
		if (gravity == true) {
			yield return new WaitForSeconds(0.5);
			rigidbody2D.gravityScale = 0;
			gravity = false;
		}
	}

	void OnCollisionEnter2D(Collision2D coll) {
		if (coll.gameObject.tag == "Wall") {
				rigidbody2D.gravityScale = 0.5f;
				gravity = true;
				StartCoroutine( grav() );
				}

	}
}

If you could help me, it would be very much appreciated. Thanks!

Line 11 needs an f after your number

yield return new WaitForSeconds(0.5f);