0

大家晚上好。

我已经完成了广告和广告的所有编码,我将展示客户将付款分为 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); ?>

4

1 回答 1

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

我的建议:首先使用值对象来验证您的输入。

于 2017-11-09T21:27:58.543 回答