我使用number_format将浮点值四舍五入到只有两位小数。问题是,我的一些输入一开始没有超过2个小数位数。所以代码:
number_format($value, 2)
在没有足够的十进制数字的情况下,它没有和平地添加0,而是在Apache日志中引发错误,这是不可取的。
因此number_format(2.1, 2)
或number_format(0, 2)
将在Apache日志中引发错误。
〔Thu Jun 30 17:18:04 2011〕〔error〕〔client 127.0.0.1〕PHP注意:在/home/tahoang/Desktop/Projects/weatherData/wweatherData.PHP的第41行中遇到一个格式不正确的数值
如何解决此问题?
尝试将number_format()的第一个参数类型转换为float:
$format = number_format((float)0, 2);
或
$format = number_format(floatval(0), 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);
进行计算时,请使用
number_format($value, 2, ".", "")
如果你想显示末尾有.00的数字(比如"50.50"而不是"50.5"),那么你会使用
numer_format($value, 2)
我使用了这个:
str_replace(array(".", ","), array(",", "."), $value)
也许它会帮助别人。
函数将其识别为字符串。
通过加零转换为数字:
number_format($NUMBER+0)
我在传递number_format()
函数中的"0..6"
时出现此错误。
我刚刚将表的价格列中的..
替换为.
。
我很难处理这个错误,这是因为返回类型float
像这样:
protected function example(): float {
...
return number_format($number, 2);
}
错误不是$number
,而是字符串与"的转换"以及"在返回CCD_ 11生成的字符串时处于浮点状态。