如何舍入到最近的千?

Ste*_*ons 30 php

如何将数字舍入到最接近的千位数?

function round($var) {
    // Round it
}
Run Code Online (Sandbox Code Playgroud)

pax*_*blo 56

PHP允许负精度,round例如:

$x = round ($x, -3); // Uses default mode of PHP_ROUND_HALF_UP.
Run Code Online (Sandbox Code Playgroud)

正精度表示小数点的舍入位置,而负精度表示小数点的相同功率.所以:

n    round(1111.1111,n)
==   ==================
 3   1111.111
 2   1111.11
 1   1111.1
 0   1111
-1   1110
-2   1100
-3   1000
Run Code Online (Sandbox Code Playgroud)

作为一般解决方案,即使对于没有内置的语言,您只需执行以下操作:

  • 500.
  • 除以1000(并在必要时截断为整数).
  • 乘以1000.

当然,这是假设您想要这种PHP_ROUND_HALF_UP行为.有些人认为银行家四舍五入,PHP_ROUND_HALF_EVEN更好地减少累积错误,但这是一个不同问题的主题.


Mic*_*res 7

只需一个小小的改变,可能有助于四舍五入!

$x = ceil(220.20 / 1000) * 1000;
echo $x;
Run Code Online (Sandbox Code Playgroud)


The*_*ith 5

以下是四舍五入到下一个千位的答案:

abs(round(($a - 500), -3)) . "\n";

500-999 然后舍入到 0 和 1000-1999 舍入到 1000,依此类推。

如果你想让它从 1000 开始,那就做

abs(round(($a + 500), -3)) . "\n";

干杯!