Thread Kaufm. Runden (34 answers)
Opened by mikdoe at 2009-07-06 16:35

mikdoe
 2009-07-06 19:19
#122879 #122879
User since
2007-08-13
98 Artikel
BenutzerIn
[default_avatar]
Alles ganz toll und ich flippe gleich aus.
Linuxer, das hatte ich auch schon gefunden. Leider wird dort mit int gearbeitet, womit wir bei meinem nächsten Problem wären.

perldoc -f int
Quote
Returns the integer portion of EXPR. If EXPR is omitted, uses
$_. You should not use this function for rounding: one because
it truncates towards 0, and two because machine representations
of floating point numbers can sometimes produce counterintuitive
results. For example, "int(-6.725/0.025)" produces -268 rather
than the correct -269; that's because it's really more like
-268.99999999999994315658 instead. Usually, the "sprintf",
"printf", or the "POSIX::floor" and "POSIX::ceil" functions will
serve you better than will int().


OK, wissen wir nun.
Ich also diesen hier:
Code: (dl )
1
2
3
4
my $betrag =  abs(int(0.57 * 100)) - int(0 * 100);
my $neu_betrag = sprintf("%d",0.57 * 100) - sprintf("%d",0 * 100);
print "Betrag: >$betrag<\n";
print "Neu : >$neu_betrag<\n";


Und kann mir jetzt bitte mal jemand sagen, warum beide Ergebnisse statt 57 nur 56 zeigen????

Bitte um HIIIIILLFFEEEEE!
Wieso kann der PC nicht rechnen????

Vor allem: Wie kann ich zuverlässig sämtliche Nackommastellen abschneiden ohne falsch rechnendes INT und ohne ebenfalls falsch rechnendes SPRINTF?

Danke und Grüße
Last edited: 2009-07-06 19:21:21 +0200 (CEST)

View full thread Kaufm. Runden