float (single precision) and double (double precision) store binary approximations, so many decimal values are not exact.
1Points
Never compare floating values with == directly; use a tolerance
Integer division happens before conversion: float f = 7 / 2 gives 3.0
Casting to int truncates towards zero