En supposant des INT 32 bits et des flotteurs / doubles normaux 4 et 8 octets IEEE-754, ce serait:
i == (int)(float) i; // possible loss (32 -> 23 -> 32 bits)
i == (int)(double) i; // no loss (32 -> 52 -> 32 bits)
f == (float)(double) f; // no loss (23 -> 52 -> 23 bits)
d == (float) d; // possible loss (52 -> 23 -> 52 bits)
Notez que INT a 32 bits de précision, Float a 23 bits, le double en a 52.