Perl Und Overflow Die Zweite |
|
March 22, 2008 |
Ich habe weiter ein wenig rumgesucht und immerhin eine brauchbare Variante zum Finden der Systemeigenen Inf-Markierung gefunden.my $overfloating_float = 0;
my $overfloating_float_string = ”;
m< $i = 98;
while($i++) {
$overfloating_float = ‘1.2e+’ . $i;
my $result = ($overfloating_float * 1) - $overfloating_float;
if($result ne ‘0′) {
print “Overflow substraction result: $result, Overflow: ” . ($overfloating_float * 1);
$overfloating_float_string = ‘9′ x $i;
last;
}
last if($i > 1_000_000_000);
}
print “Overfloat at: * 1)
Die Variable $overfloating_float_string ist eigentlich nicht korrekt erzeugt worden aber das ist hier gar nicht das Problem. Bei den meisten Testsystemen für Fukurama::Class ging alles gut, bis auf bei diesen dreien:
/>x86_64-linux-thread-multi-ld 2.6.22.10
Dort ergab sich ein die Fehlerhafte Ausgabe: Overfloat at: Ich weiß ja, dass es bei Fließkommaberechnungen Ungenauigkeiten gibt, aber die Art war mir neu.



March 22, 2008
Leave a Reply