Wir alle wissen, dass, wenn wir die letzte Zahl von 1182973981273983 finden möchten, welche 3 wir dies einfach tun:Suche nach der letzten Ziffer der Dezimalzahl
>>> print(1182973981273983 % 10)
3
Aber wenn ich will, die letzte Zahl von 2.387.123,23 bekommen Ich dachte daran, dies zu tun:
>>> 2387123.23 % 10 ** (-1 * 2)
0.009999999931681564
Aber es funktioniert nicht. Was ist der mathematische Weg, um die letzte Zahl eine Dezimalzahl zu bekommen?
p.s. String-Lösungen sind ungültig. Wir sind Programmierer, wir müssen wissen, wie Mathe funktioniert.
Dazu Sie Strings oder BigDecimals verwenden Runden schwimmt Willen worek, wie Sie sie sehen, sind gut definiert, aber nicht nützlich für die Rundung siehe http://stackoverflow.com/questions/588004/ is-floating-point-math-broken und für Ihren letzten Kommentar [Was jeder Informatiker über Fließkomma-Arithmetik wissen sollte] (Was jeder Informatiker über Fließkomma-Arithmetik wissen sollte) – Mark
'3' ist nicht die letzte Dezimalzahl Es ist nur so formatiert, dass es so aussieht. –
String-Lösungen sind gültig, da die String-Formatierung Mathe versteht. Wenn Sie meinen, dass Sie Präzisionsfehler in Fließkommadarstellungen verstehen wollen, dann ist das etwas anderes. –