用PHP样式化十进制数


Styling a decimal number with PHP

只是有点卡住,试图找到正确的函数使用:

$number = "4.999";
echo number_format($number, 2); //5.00

我们希望它显示为4.99 -我们应该使用什么PHP函数不会四舍五入任何东西,只是纯粹地将小数点后的数字限制为2 ?

use printf:

printf('%.2f', $number);

(%.2f打印带有2位小数的浮点数)


edit我第一次读错了你的问题。您所要求的是将数字四舍五入到小数点后两位,然后显示它:

$number = floor($number*100)/100;
printf('%.2f', $number);

这实际上是对这个函数的滥用,但它可以处理字符串,并且不会受到浮点数转换的不准确性的影响,也不会四舍五入:

echo bcadd("4.999", "0", 2);
http://www.php.net/manual/en/function.bcadd.php

或简单的:

echo substr($num, 0, strpos($num, '.') + 3);