对 PHP 的 bcmul() 规模感到困惑
为什么输出的是 87.5
而不是 87.50
?
<?php
$quantity = 25;
switch ($quantity)
{
case ($quantity <= 50):
$price = 3.50;
break;
case ($quantity <= 100):
$price = 3.00;
break;
default:
break;
}
echo bcmul($price, $quantity, 2);
// 87.5
?>
Why is this outputting 87.5
and not 87.50
?
<?php
$quantity = 25;
switch ($quantity)
{
case ($quantity <= 50):
$price = 3.50;
break;
case ($quantity <= 100):
$price = 3.00;
break;
default:
break;
}
echo bcmul($price, $quantity, 2);
// 87.5
?>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
它对 87.50 进行四舍五入,因为 87.5 是相同的。要修复,您需要:
It is rounding the 87.50 as 87.5 would be the same. To fix, you'd need:
使用
number_format()
而不是bcmul()
Use
number_format()
instead ofbcmul()
数学上 87.5 等于 87.50。如果您需要额外的数字填充,可以使用
number_format
或money_format
显示额外的 0Mathmatically 87.5 is 87.50. If you need additional number padding, you can use
number_format
ormoney_format
to display the extra 0对于 php < 7.3 使用
或使用 php >= 7.3 修复了
https://www.php.net/manual/en/function.bcmul.php#refsect1-function.bcmul-notes
for php < 7.3 use
or use php >= 7.3 it fixed
https://www.php.net/manual/en/function.bcmul.php#refsect1-function.bcmul-notes