fglock has asked for the wisdom of the Perl Monks concerning the following question:
I'm trying to find a better way to round the last digit of some fractional numbers.
All my numbers match this: /^0\.\d{5,}9{3}\d$/
The numbers will always be rounded "up" (like in POSIX::ceil, but in a fractional context).
0.123499999996 rounds to 0.1235 0.12345678999994 rounds to 0.12345679
This is what I have so far: (adds 0.00000000000006 to 0.12345678999994 giving 0.12345679)
if ($frac =~ /999.$/) { my ($zeroes, $digit) = $frac =~ /\.(.*)(.)$/; $digit = '0.' . '0' x (length($zeroes)-1) . sprintf("%02d", 10 - $digit); $frac += $digit; }
|
---|
Replies are listed 'Best First'. | |
---|---|
How do you ++ a fraction?
by fglock (Vicar) on Aug 02, 2002 at 13:30 UTC | |
by marvell (Pilgrim) on Aug 02, 2002 at 14:09 UTC | |
by fglock (Vicar) on Aug 02, 2002 at 14:24 UTC | |
by tommyw (Hermit) on Aug 02, 2002 at 14:34 UTC | |
by marvell (Pilgrim) on Aug 02, 2002 at 14:44 UTC | |
Re: Round a fraction
by frankus (Priest) on Aug 02, 2002 at 14:45 UTC | |
by fglock (Vicar) on Aug 02, 2002 at 14:55 UTC | |
Re: Round a fraction
by talexb (Chancellor) on Aug 02, 2002 at 12:58 UTC | |
by fglock (Vicar) on Aug 02, 2002 at 13:10 UTC | |
Re: Round a fraction
by mojotoad (Monsignor) on Aug 02, 2002 at 20:04 UTC | |
Re: Round a fraction
by thelenm (Vicar) on Aug 02, 2002 at 15:49 UTC | |
Re: Round a fraction
by fglock (Vicar) on Aug 02, 2002 at 17:10 UTC |