编程语言
首页 > 编程语言> > PHP number_format是四舍五入的?

PHP number_format是四舍五入的?

作者:互联网

我有一个价格“0,10”或“00000,10”

现在,当我尝试

number_format($price, 2, ',', '')

我得到0,00.
我怎样才能解决这个问题?我想要0,10美元.
我不想舍入.

或者当我有5,678时,我得到5,68.但我想要5,67.

解决方法:

在使用floor向下舍入之前,您可以增加数字的大小:

$price = floor($price * 100) / 100;
$formatted = number_format($price, 2, ',', '');

另一种解决方案,它可以提供更好的精度,因为它避免了浮点运算,是用三位小数格式化它并丢弃格式化后的最后一位数:

$formatted = substr(number_format($price, 3, ',', ''), 0, -1);

标签:php,rounding,number-formatting
来源: https://codeday.me/bug/20191005/1857834.html