Forum: Sonstige Fragen zu Delphi
by himitsu,
25. Mär 2012
Du könntest sogar noch mehr Ungenauigkeiten rausrechnen.
KleineSumme := 0;
for I := 0 to N - 1 do
begin
KleineSumme := KleinerWert * I;
// erst die kleinen Werte summieren
WriteLn(Summe + KleineSumme);
// für die Ausgabe summieren;
// irgendwann ist KleineSumme groß genug
Forum: Sonstige Fragen zu Delphi
by himitsu,
24. Mär 2012
Extended hat maximal 18-19 signifikante Dezimalstellen. (ungefähr 18,1845... Dezimalstellen)
Die Berechnung liegt also knapp an der Grenze.
Es gibt aber einen Unterschied.
Der Debugger, FloatToStr usw. runden aber oftmals schon auf 15-16 Stellen, für die Anzeige. (Double)
Somit könnte die Berechnung grade noch so stimmen.
12
0,0000000000000000025
Forum: Sonstige Fragen zu Delphi
by himitsu,
24. Mär 2012
Garnicht?
Die signifikanten Stellen, also die Auflösung reicht nicht unbedingt aus.
Du brauchst einen anderen Typen, welcher eine höhere Genauigkeit besitzt,
oder du mußt deinen Wert auf mehrere Variablen aufteilen. (was quasi auf's Selbe rauskommt)