number_format()导致错误“;遇到一个格式不正确的数值“;


number_format() causes error "A non well formed numeric value encountered"

我使用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生成的字符串时处于浮点状态。

相关文章: