Mailinglist Archive: opensuse-de (2601 mails)
| < Previous | Next > |
Perl rechnet irgendwie komisch
- From: "Kyek, Andreas, VF-DE" <A.Kyek@xxxxxxxxxxxx>
- Date: Fri, 20 May 2005 12:11:16 +0200
- Message-id: <4498DDECFD5E9E40A2B03505E72605E50113F017@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Hallo,
ich habe gerade ein perl-Programm geschrieben, welches aus
mehreren Oracle DBs Daten extrahiert und in einem festen
Format wieder ausgibt.
Unter anderem ist ein Zahlenfeld im Format "%012d" gefordert.
(es geht um Beträge; ausgelesen werden die Werte in Euro und
ausgegeben in Cent)
also:
2,28 soll als 000000000228 erscheinen,
-2,28 soll als -00000000228 erscheinen.
folgender kleiner Test:
perl -e '$x=2.28; printf "amount=%012d\n", $x*100' liefert:
amount=000000000227
Was'n das? Wieso? Ich hätte ja mit vielem gerechnet; damit aber
nicht.
Das Phänomen ist mit verschieden perl Versionen und verschiedenen
Plattformen (sun, linux) und vielen verschiedene Zahlen nachgestellt
worden; immer das gleiche Ergebnis.
Was dagegen geht ist:
perl -e '$x=2.28; printf "amount=%012.0f\n", $x*100'
(So ist es jetzt auch im Programm.)
Ich möchte es nur gerne verstehen. Was passiert hier?
Andreas
ich habe gerade ein perl-Programm geschrieben, welches aus
mehreren Oracle DBs Daten extrahiert und in einem festen
Format wieder ausgibt.
Unter anderem ist ein Zahlenfeld im Format "%012d" gefordert.
(es geht um Beträge; ausgelesen werden die Werte in Euro und
ausgegeben in Cent)
also:
2,28 soll als 000000000228 erscheinen,
-2,28 soll als -00000000228 erscheinen.
folgender kleiner Test:
perl -e '$x=2.28; printf "amount=%012d\n", $x*100' liefert:
amount=000000000227
Was'n das? Wieso? Ich hätte ja mit vielem gerechnet; damit aber
nicht.
Das Phänomen ist mit verschieden perl Versionen und verschiedenen
Plattformen (sun, linux) und vielen verschiedene Zahlen nachgestellt
worden; immer das gleiche Ergebnis.
Was dagegen geht ist:
perl -e '$x=2.28; printf "amount=%012.0f\n", $x*100'
(So ist es jetzt auch im Programm.)
Ich möchte es nur gerne verstehen. Was passiert hier?
Andreas
| < Previous | Next > |