Überwindung der Ungenauigkeit der Dezimalstellen bei Doppelstellen
Bei der Arbeit mit Doppelstellen besteht häufig die Notwendigkeit, die Dezimalstellen genau anzupassen. Ein häufiges Missverständnis ist, dass die wiederholte Multiplikation mit 0,1 oder einem ähnlichen Bruch ausreicht. Dies kann jedoch aufgrund der ungenauen Darstellung solcher Werte im Doppelformat zu erheblichen Rundungsfehlern führen.
Ein genauerer Ansatz besteht darin, ganzzahlige Multiplikatoren und Divisionen zu verwenden und dabei die Tatsache auszunutzen, dass ganze Zahlen präzise dargestellt werden können. Wenn Sie beispielsweise durch 100 dividieren, wie unten gezeigt, wird die Dezimalstelle effektiv nach rechts verschoben:
double x = 1234; x /= 100;
Es ist jedoch zu beachten, dass die Division durch eine ganze Zahl zwar die zusammengesetzten Rundungsfehler beseitigt, dies jedoch nicht vollständig tut Rundungsungenauigkeiten beseitigen. Gleitkomma-Arithmetik führt unabhängig von der verwendeten Methode von Natur aus zu einer kleinen Rundung bei der Berechnung.
Um eine exakte Dezimaldarstellung zu erhalten, kann man die Verwendung von BigDecimal in Betracht ziehen, einer Klasse in der Java-API, die Arithmetik mit beliebiger Genauigkeit bereitstellt . BigDecimal behält intern den genauen Wert bei und eliminiert so Rundungsfehler, die bei Gleitkommaberechnungen auftreten können.
Das obige ist der detaillierte Inhalt vonWie kann ich Dezimalstellen in Double-Variablen genau anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!