将$price分成部分付款(输出数量超过1000的问题)

Devide $price into partial payment (output issues over 1000 in amount)

大家晚上好

我完成了所有编码和广告,我将展示客户将付款分成 6 个月的可能方式。一切都很好,除了当数量超过 1000 时我的新价格输出有问题,我猜是因为 space?!在 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

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