日常在php使用中,经常有保留2位小数等各类需求,容易触发浮点数的坑。
foreach ([11.7999, 12.8, 8.99999, 6.534, 6.501, 6, 13.4, 19.1111, 7.53, 9.0999, 5.08, 5.02, 8.2] as $value) {
echo $value . '->';
echo floor($value*100)/100;
echo PHP_EOL;
}
/**
11.7999->11.79
12.8->12.8
8.99999->8.99
6.534->6.53
6.501->6.5
6->6
13.4->13.4
19.1111->19.11
7.53->7.53
9.0999->9.09
5.08->5.08
5.02->5.01
8.2->8.19
**/
所以还是使用BCMath 扩展系列函数来进行计算
foreach ([11.7999, 12.8, 8.99999, 6.534, 6.501, 6, 13.4, 19.1111, 7.53, 9.0999, 5.08, 5.02, 8.2] as $value) {
echo $value . '->';
echo floatval(bcmul($value, 1, 2));
echo PHP_EOL;
}
/**
11.7999->11.79
12.8->12.8
8.99999->8.99
6.534->6.53
6.501->6.5
6->6
13.4->13.4
19.1111->19.11
7.53->7.53
9.0999->9.09
5.08->5.08
5.02->5.02
8.2->8.2
**/
赞助一杯咖啡☕️
本文由 widdy 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Dec 10, 2020 at 09:22 am