in reply to int($x) gives strange result
perldoc -f int
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().
What Every Computer Scientist Should Know About Floating-Point Arithmetic
print int( 1.15 * 100 ),"\n"; print int( 1.15001 * 100 ), "\n"; print int( 1.14999 * 100 ), "\n"; __END__ 114 115 114
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: int($x) gives strange result
by ikegami (Patriarch) on Aug 24, 2009 at 17:35 UTC | |
by hossman (Prior) on Aug 31, 2009 at 05:53 UTC | |
by ikegami (Patriarch) on Aug 31, 2009 at 16:20 UTC | |
by Anonymous Monk on Aug 25, 2009 at 00:29 UTC | |
by ikegami (Patriarch) on Aug 25, 2009 at 01:43 UTC | |
by Anonymous Monk on Aug 25, 2009 at 02:03 UTC | |
by ikegami (Patriarch) on Aug 25, 2009 at 04:52 UTC | |
|