number_format() 导致错误“遇到非格式正确的数值”

2022-08-30 18:01:26

我正在使用number_format将浮点数舍入到只有2位十进制数字。问题是我的一些输入开始时不超过2位小数位。所以代码:

number_format($value, 2)

如果它没有足够的十进制数字,而不是和平地添加0,它会在Apache日志中引发错误,这是不可取的。

因此,或者会在Apache日志中引发错误。number_format(2.1, 2)number_format(0, 2)

[2011年6月30日,星期四,17:18:04][错误][客户端 127.0.0.1]PHP 注意:在 /home/tahoang/Desktop/Projects/weatherData/weatherData.php 第 41 行遇到一个格式不正确的数值

如何解决这个问题?


答案 1

尝试将 number_format() 的第一个参数转换为 float:

$format = number_format((float)0, 2);

$format = number_format(floatval(0), 2);

答案 2

尝试替换小数点,然后强制转换为浮动。

var_dump((float)number_format((float)str_replace(",", ".", "20,5"), 2, ".", ""));
result: float(20.5);

无需更换:

var_dump((float)number_format(floatval("20,5"), 2, ".", ""));
result: float(20);
var_dump((float)number_format((float) "20,5", 2, ".", ""));
result: float(20);

推荐