perl problem mit subtraktion

ilb

Well-Known Member
Hi,
hab n kleines-großes Problem mit perl.
In einem Programm werden Zahlen subtrahiert. Was soll da eigentlich groß passieren^^
Aber teilweise kamen echt komische Zahlen raus. Also so xy.000000000001
Dabei wurden nur Zahlen mit 2 Nachkommastellen subtrahiert.
Hab ein konkretes Beispiel gefunden. Und rausgefunden, dass es bei der Differenz immer passiert. Ein anderes Beispiel hab ich nicht gefunden.

Hier das Beispiel
#!/usr/bin/env perl
$t1 = 79.00;
$t2 = 83.76;
$e = $t2 - $t1;
print $e."\n";


$e ist dann:
4.76000000000001

Hab das jetzt unter OpenBSD und 2 verschiedenen Debian Rechnern getestet. Kam immer das selbe raus.
Bin n bisschen hilflos.
 
Zuletzt bearbeitet:
Ja und mit ner andere Architektur wird wieder etwas Anderes herrauskommen. Die FPU stellt eine Gleitkommazahl halb logarithmisch dar, wodurch es zu unterschiedlichen Ergebnissen kommt.
Um genaue Ergebnisse zu bekommen, müsstest du dir eine Bibliothek suchen, die die Berechnung selbst macht, oder die Ergebnisse rechtzeitig runden - letzteres _kann_ auch danebengehen.
Von Perl hab ich wenig Kenne und kann dir da leider nicht sagen, welche Bibliothek in Frage käme...
 
ok. letzteres habe ich auch getestet. Unter der Debian Maschine wo es letzendlich laufen soll geht es schief. unter meiner OpenBSD Maschine hat es geklappt.
Werd dann mal so eine Bibliothek suchen.
danke : )
 
jo es geht um Geldbetraege. Allerdings ist das ganze System schon auf Kommazahlen abgestimmt. Ich pflege das ganze nur. Programmiert hat das jemand anderes. Die Kommazahlen werden halt auch so in der Datenbank gespeichert. Ich werde mal schauen was besser funktioniert. Vielen Dank :)
 
Integer und nur fuer die Anzeige in Fliesskommazahlen umwandeln, ist definitiv sicherer. Es sei denn, die Genauigkeit ist nicht ganz so wichtig. ;)
 
Zurück
Oben