晚上好。
我完成了所有的编码和广告,我将展示客户将付款分成6个月的可能方式。 Everythings很好,除了我有新的价格输出问题,当金额超过1000,我猜它是因为空间?!在1000 ...?
这是代码:
Pay over 6 months: <?php if ($price_calculate['price_wo_discount']>0) echo round( ($price_calculate['price_wo_discount'])*0.16); ?>
答案 0 :(得分:1)
如果您尝试在PHP中执行此类操作,
echo round( '1 000' * 0.16);
你会得到Notice: A non well formed numeric value encountered in ...
。这是因为PHP无法安全地将字符串转换为适当的数值。它神奇地将字符串强制转换为0
并发出通知。这就是你获得0
输出的原因。
理想情况下,您需要从数字字符串中删除所有空格和逗号,然后可能使用is_numeric函数来确定您的字符串是否实际为数字,然后执行round
。
同样隐式转换你if ($price_calculate['price_wo_discount'] > 0
阻止可能会导致一些副作用。在PHP中考虑这个:
var_dump('1 is number' > 0); //outputs true
我的建议:首先使用值对象来验证您的输入。