number_format()导致错误"遇到一个非常好的数值"

Tu *_*ang 13 php number-formatting

我使用number_format将浮点数舍入为2位小数.问题是我的一些输入开头没有超过2位小数.所以代码:

number_format($value, 2)
Run Code Online (Sandbox Code Playgroud)

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

因此number_format(2.1, 2)number_format(0, 2)将在Apache日志中引发错误.

[Thu Jun 30 17:18:04 2011] [错误] [客户端127.0.0.1] PHP注意:第41行/home/tahoang/Desktop/Projects/weatherData/weatherData.php中遇到的格式错误的数值

如何解决这个问题?

Emr*_*ici 44

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

$format = number_format((float)0, 2);
Run Code Online (Sandbox Code Playgroud)

要么

$format = number_format(floatval(0), 2);
Run Code Online (Sandbox Code Playgroud)


小智 6

尝试替换小数点,然后转换为浮点数.

var_dump((float)number_format((float)str_replace(",", ".", "20,5"), 2, ".", ""));
result: float(20.5);
Run Code Online (Sandbox Code Playgroud)

没有替换:

var_dump((float)number_format(floatval("20,5"), 2, ".", ""));
result: float(20);
var_dump((float)number_format((float) "20,5", 2, ".", ""));
result: float(20);
Run Code Online (Sandbox Code Playgroud)