double jumping after falling off edge problem

so i spend i dont know how long trying to make double jump work after falling off an edge but its simple not happening so i wonder if anyone has any idea how to do

this is my code

// jumping variables
	public float jumpCount;
	public bool allowJump;
	public float jump;

	// rigidbody name
	private Rigidbody2D myrigidbody2d;

	// ground checking varaibles
	public Transform ground_check;
	public float ground_check_radius;
	public LayerMask what_is_ground;
	public bool grounded;

	void Start ()
	{
		myrigidbody2d = FindObjectOfType<Rigidbody2D> ();
	}

	void FixedUpdate ()
	{
		// checks fro ground
		grounded = Physics2D.OverlapCircle (ground_check.position, ground_check_radius, what_is_ground);
	}

	// Update is called once per frame
	void Update () {
		// jump when space is pressed
		if (Input.GetKeyDown (KeyCode.Space)) {
			
			// single jump
			if (jumpCount == 0f)
			{
				jumpCount++;
				jump_code ();
			}
			
			// double jump
			else if (jumpCount == 1f)
			{
				jump_code ();
				jumpCount++;
			}
		}

		// resetst the jump count once grouped
		if (grounded)
		{
			jumpCount = 0f;
		}
	}

	// jump code
	public void jump_code()
	{
		if (allowJump)
		{
			myrigidbody2d.velocity = new Vector2 (myrigidbody2d.velocity.x, jump);
			GetComponent<AudioSource>().Play();
		}
	}

so what this code does is that instead of solving my problem it just gives you triple jump when jumping from ground and double jump when falling off an edge i have no idea why help plz

// If the character has more than 0 jumps left
if (jumpCount > 0)
{
jump_code(); // Make the character jump
jumpCount–; // Reduce the amount of jumps left by 1
}
// If the character is touching the ground
if (grounded)
{
jumpCount = 2; // Reset amount of jumps left to 2
}

Try putting that in your void Update()