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) 

  • Binäre Darstellung des Schwimmers in Python (Bits nicht hex)
  • Warum ist sys.maxint <(sys.maxint - 100 + 0.01) in Python?
  • Wie kann man Fließkomma-Fehler vermeiden?
  • Numpy Matrix Inversion Rundung Fehler
  • Python 2.7: um einen schwimmer bis zur nächsten geraden nummer
  • Python-Gleitkomma willkürliche Präzision vorhanden?
  • 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.