brigitte Kunz: Rundungsproblem

Beitrag lesen

Hallo.

Kann jemand sich folgenden Effekt erklären:
beim Multiplizieren und Dividieren rundet Perl aus irgendeinem Grund die Ergebnisse, wenn die Ausgangswerte errechnet wurden.
Werden die Ausgangswerte mit Konstanten vorbelegt, wird nicht gerundet.

Beispiele:
#Erster Versuch: Es wird gerundet
my $zinssatz = 0.055;
my $jahressumme = $gesamtsumme * 12 / $runtime;
my $volume  = $zinssatz * ($jahressumme - ($jahressumme % 1000000)) / 1000000;   #Anzahl Millionen in $jahressumme wird errechnet
#Jahressumme = 3737500 ist in einem vorangehenden Abschnitt errechnet worden; Es sollte sich $volume = 0.055 * 3 = 0.165 ergeben.
Perl liefert aber 0 zurück.

#Zweiter Versuch: Jahressumme wird fest vorgegeben, kein Runden, Ergebnis OK.
my $volumenzinssatz = 0.055;
my $jahressumme = 3737500;    #fest vorgegeben
my $csm_volume  = $volumenzinssatz * ($jahressumme - ($jahressumme % 1000000)) / 1000000;
#Wie erwartet wird 0.165 zurückgeliefert.

Kann mir jemand erklären, wie es zu dem Effekt kommt und wie er sich umgehen läßt? (Ganzzahlmodus ist nicht eingeschaltet!)
Gibt es eventuell am Server Einstellungen, die das Rundungsverhalten beeinflussen?
Nach zwei Tagen Rumprobierens bin ich mit meinem Latein am Ende. Das Manual sagt hier nur lapidar: 'Perl rechnet exact so wie Sie es erwarten.' Sind meine Erwartungen überzogen?

Für jegliche Hilfe bedanke ich mich im voraus recht herzlich.
Brigitte Kunz