Umgang mit Genauigkeitsbeschränkungen bei Gleitkommaberechnungen
Gleitkommazahlen werden in der Informatik häufig verwendet, weisen jedoch inhärente Genauigkeitsbeschränkungen auf . Ein solches Problem ist die Unfähigkeit, alle reellen Zahlen präzise darzustellen, was zu Rundungsfehlern bei Berechnungen führt.
Problem mit der Gleitkommadarstellung
Bedenken Sie den folgenden Code, der versucht So berechnen Sie die Anzahl der Spalten basierend auf bestimmten Werten:
double mw = 4.5999999999999996; // Represented as 4.6 internally double p = 0.2; double g = 0.2; int h = 1; int columns = (int) ((mw - (h * 11 * p)) / ((h * 11 * p) + g)) + 1;
Trotz eines gewünschten Ergebnisses von 2 ist das Programm falsch gibt 1 aus. Dies liegt daran, dass die interne Gleitkommadarstellung von 4,6 (4,5999999999999996) Rundungsfehler in den Berechnungen verursacht.
Behebung des Genauigkeitsproblems
Überwindung dieses Genauigkeitsproblems erfordert die Anerkennung der Einschränkungen von Gleitkommazahlen Arithmetik:
Das obige ist der detaillierte Inhalt vonWarum führen Gleitkommaberechnungen zu unerwarteten Ergebnissen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!