Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: A simple rounding question, but can't get it!

by Masem (Monsignor)
on Feb 01, 2002 at 04:01 UTC ( #142592=note: print w/replies, xml ) Need Help??

in reply to A simple rounding question, but can't get it!

What is probably happening is that as a float, 20.875 is being represented as "20.8749999999...", which, when rounded to 2 decimal places, is being represented as 20.87. (Though, theorhetically, 0.875 should be able to be represented exactly by decimal fractions, but there's still some floating point math).

A general way to round to some place can be done by the following:

my $rounded = int ( $value / ( 10**$round ) + 0.5 ) * ( 10**$round );
where $round is the digit that you want to round to, 0 being the 1's place, 1 the tens, and -1 the tenths place. (and so forth). You'll want to do something with $round = -2 in your case here.

Dr. Michael K. Neylon - || "You've left the lens cap of your mind on again, Pinky" - The Brain
"I can see my house from here!"
It's not what you know, but knowing how to find it if you don't know that's important

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://142592]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (3)
As of 2018-05-28 05:34 GMT
Find Nodes?
    Voting Booth?