Re: Rounding down?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 22 Aug 2009 14:02:58 +0100, ash@xxxxxxxxxxxxxxxxxxxx (Ashley Sheridan) wrote:

>On Sat, 2009-08-22 at 13:00 +0100, Richard Heyes wrote:
>> Hi,
>> 
>> > Is there a way to round down to the nearest 50?
>> >
>> > Example: Any number between 400 and 449 I would 400 to be displayed; 450 to 499 would be 450; 500 to 549 would be 500, etc?
>> 
>> Off the top of my head: divide the number by 50, run floor() on the
>> result, then times it by 50.
>> 
>> 1. 449 / 50 = 9.whatever
>> 2. floor(9.whatever) = 9
>> 3. 9 * 50 = 450
>> 
>> -- 
>> Richard Heyes
>> HTML5 graphing: RGraph - www.rgraph.net (updated 8th August)
>> Lots of PHP and Javascript code - http://www.phpguru.org
>> 
>
>It should be round() and not floor().
>
>449 / 50 = 8.98
>floor(8.98) = 8
>8 * 50 = 400
>
>round(8.98) = 9
>9 * 50 = 450
>
Definitely floor or int, not round.

	Round 0.5-1.499 -> 1
	Floor 1.0-1.999 -> 1

And if you really want to be accurate  you should allow for decimal conversion errors in
any operation involving floating point numbers.  Otherwise you cannot rely on (say) 50 not
being represented as 49.9999999999, so that int or floor will give 49. In something like
this I usually add half of the precision I want to work to:

	eg: $answer = 50* (int) (($x +0.5)/50);

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux