Home » Php » php – How to round to nearest Thousand?

php – How to round to nearest Thousand?

Posted by: admin April 23, 2020 Leave a comment

Questions:

How Do I round a number to its nearest thousand?

function round($var) {
    // Round it
}
How to&Answers:

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.

Answer:

rounded_number = round(original_number, -3);

http://php.net/manual/en/function.round.php

Answer:

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.

Answer:

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!

Answer:

from: http://us3.php.net/manual/en/function.round.php

$x = round ( $x, -3 );

Answer:

For positive integers:

function round($var) {
    return ($var + 500) / 1000 * 1000;
}

Answer:

Just for your information simple calculation from Mikel answer is faster than round():

Test name       Repeats         Result          Performance     
calculation     10000           0.030229 sec    +0.00%
round           10000           0.040981 sec    -35.57%

Test source here.

Answer:

Just a small change, may help to round up!

$x = ceil(220.20 / 1000) * 1000;
echo $x;