Gleitpunktgenauigkeit in Python

Irgendein Grund, warum c nicht gleich 0.321 sein sollte?

 >>> from math import ceil >>> a = 123.321 >>> b = a % 60 >>> b 3.320999999999998 >>> ceil(b) 4.0 >>> c = ceil(b) - b >>> c 0.679000000000002 

Aktualisieren:

Für alle, die wissen wollen, wie ich den Wert bekam, den ich suchte:

 >>> c = b - floor(b) 

  • Gleitpunkt auf 16 Bit Twos Complement Binary, Python
  • Überprüfen, ob float entspricht einem Integer-Wert in Python
  • Wie man eine Gleitkommazahl als Text speichert, ohne Präzision zu verlieren?
  • Wie funktioniert Rundung in Python?
  • Wie übergehe ich `float ()` für eine benutzerdefinierte Klasse in Python?
  • Wie bekomme ich eine Liste von [-2.3, -2.2, ...]?
  • 2 Solutions collect form web for “Gleitpunktgenauigkeit in Python”

    Du gehst in etwa fünf Minuten an: P

    Ceil (b) ist 4,0
    B ist 3.320999999999998

    So ceil (b) – b sollte 4.0 - 3.320999999999998 . Versuchen Sie, das in Ihren Rechner zu setzen und Sie werden sehen, warum c nicht gleich 0.321 ist.

    Wenn du versuchst, c gleich zu bekommen .321, solltest du wahrscheinlich b – floor (b) machen.

    Ummm, weil 4 – 3.321 ist .679? Zumindest war es, als ich in der 3. Klasse war.

    Python ist die beste Programmiersprache der Welt.