How to round to nearest Thousand?
Solution 1:
PHP allows negative precision for round
such as with:
$x = round ($x, -3); // Uses default mode of PHP_ROUND_HALF_UP.
Whereas a positive precision indicates where to round after the decimal point, negative precisions provide the same power before the decimal point. So:
n round(1111.1111,n)
== ==================
3 1111.111
2 1111.11
1 1111.1
0 1111
-1 1110
-2 1100
-3 1000
As a general solution, even for languages that don't have it built in, you simply do something like:
- add
500
. - divide it by
1000
(and truncate to integer if necessary). - multiply by
1000
.
This is, of course, assuming you want the PHP_ROUND_HALF_UP
behaviour. There are some who think that bankers rounding, PHP_ROUND_HALF_EVEN
, is better for reducing cumulative errors but that's a topic for a different question.
Solution 2:
rounded_number = round(original_number, -3);
http://php.net/manual/en/function.round.php
Solution 3:
Here's an answer to round up to the next thousand:
abs(round(($a - 500), -3)) . "\n";
500-999 then round to 0 and 1000-1999 round to 1000, etc.
If you want it to start at 1000, then just do
abs(round(($a + 500), -3)) . "\n";
Cheers!
Solution 4:
Use the round function as mentioned by other posters round($number, -3)
.
You can also, divide your number by 1,000, round to nearest whole number then multiply by 1,000.
Also, if you want to round up, you can divide by 1,000, negate the quotient, coerce it to an integer, negate it again and then multiply it by 1,000.
Solution 5:
Just a small change, may help to round up!
$x = ceil(220.20 / 1000) * 1000;
echo $x;