Die nächste IEEE 754 64-Bit-Floating-Point-Check Nummer bis 0,555 ist 0,55500000000000004884981308350688777863 979339599609375. Es liegt sehr nahe bei 0,56 als bei 0,55.
Die nächste IEEE 754 64-Bit-Binär-Gleitkommazahl zu 5.555 ist 5.55499999999999971578290569595992565155029296875. Es liegt etwas näher bei 5,55 als bei 5,56.
In jedem Fall ist der Ausgang die nächste Dezimalstelle mit 2 Dezimalstellen zum tatsächlichen Wert der internen Zahl.
wie Pascal Cuoq in einem Kommentar sagt, ist 0.555 in der binade [0,5 ... 1), in der darstellbaren Gleitkommazahlen um 2 -53 getrennt sind. Im Gegensatz dazu liegt 5.555 in der binade [4 ... 8], in der darstellbare Gleitkommazahlen durch 2 -50 getrennt sind. Aus diesem Grund sind die Bruchzahlen für 0,555 und 5,555 unterschiedlich.
Sehr gute Antworten sind hier http://StackOverflow.com/Q/24493228/632407 – jm666
Auf eine verwandte Anmerkung, 'sprintf' Runden auf gerade, so' sprintf '% .0f', 0.5' gibt '0' und 'sprintf '% .0f', 1.5 'ergibt' 2', obwohl '0.5' und' 1.5' genau wie eine Fließkommazahl dargestellt werden können. – ikegami