Ich habe die folgende Doppelberechnung in Java:
%Vor% Wenn wir nun die Genauigkeit nicht verlieren, wäre C3 == C1
wahr. Aber da wir die Genauigkeit verlieren, sind C3
und C1
immer noch gleich?
Wenn sie nicht immer gleich wären, wenn ich C1
, C2
, S
und C3
hätte, wie könnte ich die rate
ändern, um sicherzustellen, dass nach der Berechnung C3
gleich wäre zu C1
?
Hinweis: Leider ist die Verwendung von BigDecimal keine Option.
Nicht so.
Gleitpunkt ist eine Annäherung. Das nächste Double, Bit 1, das der Mantisse hinzugefügt wird, kann für große Exponenten zwischen diesen beiden Doubles eine ziemlich große Lücke verursachen.
S, das 0 annähert, wird riesige Doppelgänger verursachen, die eine große Lücke zwischen ihnen haben. Das wird nicht mehr korrigierbar sein, sagen wir mit dieser einfachen Rundung. Selbst wenn das kleine S nicht dazu führt, dass die Division den doppelten Bereich mit INFINITY überschreitet.
Man kann leicht von 1000 sein.