首页 » PHP » ceil函数由于小数精度导致的结果加1的问题

ceil函数由于小数精度导致的结果加1的问题

2463 0

在日常处理小数相加相乘的时候,发现函数ceil()计算的结果比正确值多了1,比如下面:

$a = 7960.00;
$b = 0.08;

echo ceil($a * $b * 10); //结果显示的6369,实际应该是6368。

导致的具体原因可以查PHP高精度数字二进制的相关资料,解决方案两个。

  1. 用bcmul,bcadd等函数替代相乘和相加。
  2. 增加一个round解决。如以上变更为ceil(round($a * $b * 10, 1));

文章评分2次,平均分3.0

本文原始地址:https://www.tiandiyoyo.com/2021/11/php_ceil_bug/
本站所有文章,除了特别注明外,均为本站原创,转载请注明出处来自www.tiandiyoyo.com

您可能还会对以下文章感兴趣:

    没有相关的文章

评论前先开启评论开关: