PHP intval 转换浮点数精度丢失问题


其实intval精度丢失问题,其他语言也是存在的。。。解决方法也很简单哈~


例如出错代码:

$n="19.99";
print intval($n*100); // prints 1998


解决方案一:转换成字符串再 intval

print intval(strval($n*100)); // 1999


解决方案二:使用 round 函数替代 floatval

echo round(19.99*100);// 1999


解决方案三:调整业务逻辑,不使用小数类型,直接使用int

echo 1999;


.........哈哈哈哈.........

注:本文转载自imBlog,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。

评论