number_format() ,这个函数报错了,怎么办

2016-07-07 15:11 来源:www.chinab4c.com 作者:ecshop专家

Warning: number_format() expects parameter 1 to be double, string given in D:\xampp\htdocs\yifu272\includes\lib_common.php on line 959

Warning: number_format() expects parameter 1 to be double, string given in D:\xampp\htdocs\yifu272\includes\lib_common.php on line 959

这些错误是怎么回事啊,是价格方面的数据出错了吗,到底是怎么个错误法了,真是让人很郁闷,而且页面的样式也变

了,不过程序还是可以执行下去,我发现这种错误,完全来自与数据库,与代码无关,但是不知道具体是数据库那一块的错误

请各位前辈给看看,这么解决这个问题


谢谢啦

回答:
少了参数。..

文件校验,是否修改过程序

将includes\lib_common.php 的957~959行:
else
{
$price = number_format($price, 2, '.', '');
}

修改为

else
{
if(!$price){
$price = 0;
}
$price = number_format($price, 2, '.', '');
}

即可。原因是配送插件里面的免费额度为0,ec本身的bug导致了$price的值为空值,直接调用number_format出现了错误。

可以用楼上的方法。
如果服务器是用php在5.3以上,可能会出现该问题。

好 顶顶!!!!!!!!!!

怎么改了,还是不行? 请支持,谢谢!

文件校验,是否修改过程序

我已经按这个方法修改,有些地方没事了,不过在编辑快递时还是会有这个错误。
我的站http://www.yuqinfang.com

赞成lz分析的原因,确实是因为免费额度获取的问题,在PHP5.3上报错
但获取到的应该是一个字符串,所以出错,应该这样改:
function price_format($price, $change_price = true)
{
$price = 0 + $price;//添加这一行,转换成数值

正解~~~~~

赞成lz分析的原因,确实是因为免费额度获取的问题,在PHP5.3上报错
但获取到的应该是一个字符串,所以出错 ...
e_polo 发表于 2011-11-24 11:42

赞成lz分析的原因,确实是因为免费额度获取的问题,在PHP5.3上报错
但获取到的应该是一个字符串,所以出错 ...
e_polo 发表于 2011-11-24 11:42



谢谢! 出现这个问题的朋友,遵照e_polo的方法修改一下就可以了,谢谢!

e_polo正解 已经解决哈 多谢