Thread Perl Bug bei int? (44 answers)
Opened by Rolf_PlusW at 2013-03-01 11:29

Muffi
 2013-03-05 13:09
#166223 #166223
User since
2012-07-18
1465 Artikel
BenutzerIn
[default_avatar]
Eine 100%-Lösung kanns nicht geben. Es ist situationsabhängig welches eps das passendste ist.
Es kommt darauf an welche Genauigkeit deine Werte haben.

Es gibt auch kein Grundrauschen der Gleitkommaarithmetik. Es gibt Rechenoperationen und Operanden und abhängig von diesen verringert sich mit jeder Operation deine Genauigkeit bzw. deine Anzahl gültiger Bits.

Anhand der Berechnungen, die du durchführen willst kannst du deine gültigen Stellen abschätzen und anhand derer dann dein eps wählen.

Ein ganz simples Beispiel, das ziemlich viele Bits "klaut"
Code (perl): (dl )
((1 - 0.9999) * 10000)

Das sollte 1 ergeben.

[EDIT]
Aus Faustformel (wenn ichs noch richtig in Erinnerung hab) an verlorenen Bits/Stellen
Addition: 0-1 Bit
Multiplikation: 0-1 Bit
Division: 0-1 Bit
Subtraktion: Bei fast gleich großen Zahlen verringern sich die gültigen Stellen um die Anzahl der ersten Stellen, in denen die beiden Zahlen übereinstimmen. <= Da kanns gefährlich werden
Last edited: 2013-03-05 13:32:14 +0100 (CET)
1 + 1 = 10

View full thread Perl Bug bei int?