Warum rundet Perls Sprintf Gleitkommazahlen nicht richtig?

Ich war auf der Suche nach der Rundungskonvention, die von Perls integrierter Funktion verwendet wirdsprintf.

Ich dachte, dass es eine normale Rundung macht (z. B. ROUND_HALF_UP wie inJava Rundungsmodus Konvention), aber das weitere Graben erwies sich als falsch:

> /usr/local/bin/perl5.10.1 -e 'print(sprintf("%.2f", shift @ARGV)."\n");' 0.335
0.34
> /usr/local/bin/perl5.10.1 -e 'print(sprintf("%.2f", shift @ARGV)."\n");' 1.335
1.33

Antworten auf die Frage(2)

Ihre Antwort auf die Frage