如何将数字舍入到最接近的千位数?
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更好地减少累积错误,但这是一个不同问题的主题.
只需一个小小的改变,可能有助于四舍五入!
$x = ceil(220.20 / 1000) * 1000;
echo $x;
Run Code Online (Sandbox Code Playgroud)
rounded_number = round(original_number, -3);
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/en/function.round.php
以下是四舍五入到下一个千位的答案:
abs(round(($a - 500), -3)) . "\n";
500-999 然后舍入到 0 和 1000-1999 舍入到 1000,依此类推。
如果你想让它从 1000 开始,那就做
abs(round(($a + 500), -3)) . "\n";
干杯!