For ordinary integers, if the rounding up is truly a "rounding" and
not ceiling up to the nearest highest integer, then this should work:
$n = 3.2;
print sprintf("%d", $n); #this will print 3
To ceil the number, wherein 3.2 --> 4 then this would work.
use POSIX;
print ceil($n); # this will print 4.
Cheers,
Rex
On 8/21/05, Bryan Harris <[EMAIL PROTECTED]> wrote:
>
>
> Neat, I like it!
>
> Is this the best way to do simple integer round-ups? E.g. 3.2 -> 4?
>
> I've been using:
>
> $nines = 1 - 1/1e10;
> $value = 3.2;
> $roundedvalue = int($value + $nines);
>
> ... but it looks like $roundedvalue = $value + (-$value % 1) might be
> better???
>
> - B
>
>
> > On Aug 19, Bryan Harris said:
> >
> >> Is there a simple formula to round some value X up to the next multiple of
> >> some other value T?
> >
> > Generally speaking, you can do:
> >
> > $x + (-$x % $t)
> >
> > For 10 to round up to the next multiple of 3, it's 10 + (-10 % 3) which is
> > 10 + 2 = 12. Likewise, for negative numbers: -14 to round up to the next
> > multiple of 5 is -14 + (14 % 5) which is -14 + 4 = -10.
> >
> > To round down, it's simply:
> >
> > $x - ($x % $t)
>
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> <http://learn.perl.org/> <http://learn.perl.org/first-response>
>
>
>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>