Thread Kaufmännisch korrekt runden
(67 answers)
Opened by bianca at 2009-12-11 07:14
"8e-009" das ist die Float nach Sting Konvertierung von Perl willst du was anderes musst du "sprintf" oder ähnliches nutzen.
Da taucht irgendwo wieder das Fließkommaproblem auf. Es scheint einen Unterschied zu machen ob man eine zahl mit: Code: (dl
)
"8e-9" Code: (dl
)
"0.000000008" Mal kurz getestet: Code: (dl
)
1 1.505162-1505162e-6=-2.22044604925031e-16 Ich habe da eine auskommetierte "sprintf"-Zeile, die sollte das Problem beheben, da es die "kaputten" Stellen abschneidet. (dann kann man sich auch das "+0" beim "return" sparen.) Edit: Wenn man bei meinem kleinen Test genauer hinschaut sieht man, dass die Differenz mal plus und mal minus ist. Das bedeutet, dass der Fehler mal in der Exponentdarstellung auftaucht und mal bei der Kommadarstellung. Das wiederum heißt man sollte sich auf eine Art des Erzeugens festlegen. Glücklicherweise kann man das mit "sprintf" hin bekommen. Last edited: 2009-12-13 14:24:29 +0100 (CET) |