Umgang mit Genauigkeitsabweichungen bei Gleitkomma-Darstellungen
Bei der Arbeit mit Gleitkommazahlen kann es zu Präzisionseinschränkungen aufgrund ihrer internen Darstellung kommen unerwartete Ergebnisse. Betrachten Sie das folgende Problem:
In einem Programm wird eine Variable namens mw mit dem Wert 4,6 initialisiert, der durch Konvertieren einer Zeichenfolge mit diesem Wert in einen Double-Wert erhalten wird. Bei der Verwendung in einer Berechnung zur Bestimmung der Anzahl der Spalten ergibt sich jedoch ein Ergebnis von 1,9999999999999996 statt der erwarteten 2,0.
Diese Diskrepanz entsteht, weil die interne Darstellung von Gleitkommazahlen näherungsweise ist. In diesem Fall kann 4,6 nicht genau als Float gespeichert werden, was dazu führt, dass in der Berechnung ein etwas anderer Wert von 4,5999999999999996 verwendet wird.
Um dieses Problem anzugehen, ist es wichtig zu erkennen, dass strikte Gleichheitsvergleiche mit Floating- Punktzahlen sind unzuverlässig. Erwägen Sie stattdessen die Verwendung eines Bereichs akzeptabler Werte, um festzustellen, ob ein Ergebnis nahe genug am erwarteten Ergebnis liegt.
Beachten Sie außerdem, dass einige Werte nicht präzise als Gleitkommazahlen dargestellt werden können. Weitere Informationen finden Sie in umfassenden Ressourcen wie „Was jeder Informatiker über Gleitkomma-Arithmetik wissen sollte“ und „Vergleich von Gleitkommazahlen“. Wenn Sie diese Einschränkungen verstehen und geeignete Techniken anwenden, können Sie Genauigkeitsprobleme bei der Arbeit mit Gleitkommazahlen abmildern.
Das obige ist der detaillierte Inhalt vonWarum ergibt eine Gleitkommaberechnung 1,9999999999999996 statt 2,0?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!