Dec
22
2022
PHP intval 转换浮点数精度丢失问题
作者:
绝缘体.. 发布:
2022-12-22 06:31 分类:
未分类 阅读:
抢沙发
在 PHP 和其他一些语言都会存在这个问题,转换浮点数为整数的时候会出现精度丢失,如下:
<?php $n = "19.99"; print intval($n * 100); //结果:1998
解决办法:
1. 先转换成字符串再 intval
echo intval(strval($n * 100)); //结果:1999
2. 使用 round 函数替代 floatval
echo round(19.99 * 100);
3. 使用高精度计算函数(推荐)
echo bcmul($amount, 100);
微信扫一扫,打赏作者吧~