Yes, if you mean that a 64 bit floating point number has more significant bits in the mantissa than a 32 bit integer does, I agree. I leave looking up the definition of ANSI C long and double to the interested readers.
Update: I looked up what Microsoft did for storage in C. "int" and "long" are both 32 bits (other folks will assign 64 bits to a "long"). A MS "float" is 32 bits and MS "double" is 64 bits with 52 bit mantissa.
ANSI C Summary says: that an int will have at least 4 significant decimal digits and a long will have at least 9 significant decimal digits (see link for exact ANSI spec'd ranges). An int can be the same size as a long (bigger than minimum is ok).
A float has to have 6 decimal digits of precision and a double has a minimum of 10 decimal digits of precision. So a double is guaranteed to have at least one more decimal digit of precision than a long (10 vs 9).