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

< Previous Next >
Follow Ups