Rigidbody Velocity.Y is a random number!

I check rigidbody.velocity.y to find if the character is either jumping up, dropping down or stationary. But at certain points in the level, for no apparent reason, the value is a weird number. But what’s weirder than that number is the velocity vector is (0, 0, 0), and velocity. y is something else.

Debug.Log("Velocity Up is: " + myRigidbody.velocity.y + " and velocity is: " + myRigidbody.velocity);

The above code logs this,
Velocity Up is: 6.208779E-09 and velocity is: (0.0, 0.0, 0.0)

Based on the reply posted by bobisgod234, I made a slight change to my code. So instead of checking if velocity.y > 0, I am checking if velocity.y > 0.0001f. This even though it works, still kinda feels like a hack. If there is a better way, I’d love to know it. Thanks.