If single has 24 bits mantissa, then double has 53 bits.64-bits float mantissa is 52-bits, 32-bit float mantissa is 24-bits.
https://en.wikipedia.org/wiki/Singl...cision_binary_floating-point_format:_binary32
The true significand includes 23 fraction bits to the right of the binary point and an implicit leading bit (to the left of the binary point) with value 1, unless the exponent is stored with all zeros. Thus only 23 fraction bits of the significand appear in the memory format, but the total precision is 24 bits (equivalent to log10(224) ≈ 7.225 decimal digits). The bits are laid out as follows:
https://en.wikipedia.org/wiki/Doubl...cision_binary_floating-point_format:_binary64
The format is written with the significand having an implicit integer bit of value 1 (except for special data, see the exponent encoding below). With the 52 bits of the fraction (F) significand appearing in the memory format, the total precision is therefore 53 bits (approximately 16 decimal digits, 53 log10(2) ≈ 15.955). The bits are laid out as follows:
Also, floating point values are always signed, so yet another bit of precision for both formats when doing apples to apples comparsion to integers (25 for float and 54 for double).
https://en.wikipedia.org/wiki/Singl...int_format#Precision_limits_on_integer_values