大家晚上好。
我已经完成了广告和广告的所有编码,我将展示客户将付款分为 6 个月的可能方式。一切都很好,除了当金额超过 1000 时我对新价格的输出有问题,我猜是因为空间的原因?!在 1 000 ...?
这是代码:
Pay over 6 months: <?php if ($price_calculate['price_wo_discount']>0) echo round( ($price_calculate['price_wo_discount'])*0.16); ?>
如果你尝试在 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
我的建议:首先使用值对象来验证您的输入。