imzhi 的个人博客 / 0 / 6 / 创建于 2年前 / 更新于 1年前
当打印 8.8 * 100 * 5 的计算结果,var_dump(8.8 * 100 * 5),打印出的结果是:4400.000000000001。为了避免后端比较数值的时候,出现意外情况,最好使用 round 函数保留 2 位小数点,或者直接用 bc 函数进行计算。
8.8 * 100 * 5
var_dump(8.8 * 100 * 5)
round
bc
本作品采用《CC 协议》,转载必须注明作者和本文链接
8.8 x 5 x 100 = 4400.000000000001
// 乘法 $nums1 = 8.8 * 5 * 100; var_dump($nums1); // float(4400) var_dump(round($nums1, 2)); // float(4400) $result = bcmul(8.8,5,2); $result = bcmul($result,100,2); var_dump($result); // string(7) "4400.00" // 除法 $nums2 = 10/3; var_dump($nums2); // float(3.3333333333333) var_dump(round($nums2, 2)); // float(3.33) var_dump(bcdiv(10,3,2)); // string(4) "3.33" // 关于保留2为小数且补足末尾0 $nums3 = 2/10; // float(0.2) var_dump($nums3); var_dump(round($nums3, 2)); // float(0.2) var_dump(sprintf("%.2f", $nums3)); // string(4) "0.20" var_dump(bcdiv(2,10,2)); // string(4) "0.20"
保险起见还是bc吧
www.laruence.com/2013/03/26/2884.h...
鸟哥的博文中也有类似的文章,可以供楼主参考
我要举报该,理由是:
8.8 x 5 x 100 = 4400.000000000001
code
保险起见还是bc吧
www.laruence.com/2013/03/26/2884.h...
鸟哥的博文中也有类似的文章,可以供楼主参考