Willst Du wirkliche die genaue Darstellung von Double/Extended haben? Die können ziemlich viele Nachkommastellen haben. Hier für Deine Zahl 4512985.95:
Berechnet mit meinem MPArith(
http://www.wolfgang-ehrhardt.de/misc_de.html#mparith)
Code:
Test of MPArith V1.37.12 (31/32 bit) [mp_rcalc] (c) W.Ehrhardt 2008-2018
Karatsuba cutoffs: mul/sqr = 16/32
Toom-3, BZ cutoffs: mul/sqr = 32/64, div = 32
Type "?<enter>" to get some info about commands, "\q" or "quit" to end.
Current bit precision = 240 (max:120000), decimal precision = 72.2
[D]:=> x=4512985.95
X = 4512985.95
[D]:=> asx(x)
Result = 4512985.9499999999998181010596454143524169921875
[D]:=> asd(x)
Result = 4512985.950000000186264514923095703125
oder mit John Herbster's ExactFloatToStr_JH0 -- Exact Float to String Routines (
https://cc.embarcadero.com/Item/19421):
4.512.985,949.999.999.999.818.101.059.645.414.352. 416.992.187.5
Schau Dir damit mal 'smallest double' an, das hat über 750 signifikante Nachkommastellen!