我如何确保浮点数总是用PHP四舍五入?
2022-08-30 14:04:07
我想确保如果存在任何小数,PHP中的浮点数被四舍五入,而不必担心数学舍入规则。此函数的工作方式如下:
1.1 to 2
1.2 to 2
1.9 to 2
2.3 to 3
2.8 to 3
我知道该函数存在,但是如果找到任何小数,我看不到任何用于四舍五入的函数。有什么简单的方法可以做到这一点吗?round()
我想确保如果存在任何小数,PHP中的浮点数被四舍五入,而不必担心数学舍入规则。此函数的工作方式如下:
1.1 to 2
1.2 to 2
1.9 to 2
2.3 to 3
2.8 to 3
我知道该函数存在,但是如果找到任何小数,我看不到任何用于四舍五入的函数。有什么简单的方法可以做到这一点吗?round()
我知道这是一个古老的话题,但它出现在谷歌中。我将扩展Blake Plumb关于精度的答案。
ceil(1024.321 * 100) / 100;
乘以 100 并除以 100 只能使用百分之一。这在十分之一,千分之一,十万分之一等上是不准确的。
function round_up($number, $precision = 2)
{
$fig = pow(10, $precision);
return (ceil($number * $fig) / $fig);
}
结果:
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)
笔记:
感谢Joseph McDermott和brandom的贡献,他们改进了我的原始片段。