Sot*_*ris 27 php floating-point precision rounding ceil
如果存在任何小数,我想确保PHP中的浮点数被舍入,而不必担心数学舍入规则.此功能将如下工作:
1.1 to 2
1.2 to 2
1.9 to 2
2.3 to 3
2.8 to 3
Run Code Online (Sandbox Code Playgroud)
我知道round()函数存在,但如果找到任何小数,我看不到任何舍入函数.有没有简单的方法来做到这一点?
irc*_*ell 62
使用ceil功能:
$number = ceil(1.1); //2
Run Code Online (Sandbox Code Playgroud)
ash*_*ash 18
我知道这是一个老话题,但它出现在谷歌.我将扩展Blake Plumb关于精度的答案.
ceil(1024.321 * 100) / 100;
Run Code Online (Sandbox Code Playgroud)
乘以100除以100只能用百分之一.这在十分之一,千分之一,十万分之一等方面都不准确.
function round_up($number, $precision = 2)
{
$fig = pow(10, $precision);
return (ceil($number * $fig) / $fig);
}
Run Code Online (Sandbox Code Playgroud)
结果:
var_dump(round_up(1024.654321, 0)); // Output: float(1025)
var_dump(round_up(1024.654321, 1)); // Output: float(1024.7)
var_dump(round_up(1024.654321, 2)); // Output: float(1024.66)
var_dump(round_up(1024.654321, 3)); // Output: float(1024.655)
var_dump(round_up(1024.654321, 4)); // Output: float(1024.6544)
var_dump(round_up(1024.654321, 5)); // Output: float(1024.65433)
var_dump(round_up(1024.654321, 6)); // Output: float(1024.654321)
Run Code Online (Sandbox Code Playgroud)
笔记:
感谢Joseph McDermott和brandom为改进我的原始片段所做的贡献.
let*_*ngo 10
Ceil会为你做这件事
取自示例:
<?php
echo ceil(4.3); // 5
echo ceil(9.999); // 10
echo ceil(-3.14); // -3
?>
Run Code Online (Sandbox Code Playgroud)
Bla*_*umb 10
我知道这个问题早已得到解答,但是当我对该主题进行谷歌搜索时,它就出现了.如果你想精确地向上舍入,那么一个好的方法是使用ceil函数并将数字乘以你想要表示的小数点数,然后除以该数字.
ceil(1024.321*100)/100
Run Code Online (Sandbox Code Playgroud)
会产生1024.33