我有一个返回此double
的计算:6.4971508379888。如果我把它投射到float
并回显它,那就是相同的数字。我想显示(不是圆形)只有两位小数的数字,所以我尝试了:
number_format((float)$number, 2, '.', '')
和
sprintf('%0.2f', (float)$number)
但在这两种情况下我都看到6.50而不是6.49。为什么会这样?
答案 0 :(得分:1)
PHP根据给定的精度自动舍入值
如果您需要预期的结果,请遵循以下代码。
$precision = 2;
$number = floor($number * pow(10,$precision))/pow(10,$precision);
echo number_format((float)$number, $precision, '.', '');