float转int的时候精度丢失

php中float转int精度丢失的问题

今天遇到一个问题,$19.99转换为内部货币时的比例是1:100,所以乘以100,结果是1999,但是订单信息描述中将数据转换为int(不确定, 因为里面是将含有该float数值字段的数组做json_encode处理的)时,数值变为了1998。原来float和int在计算机的二进制存储方式不同,参考:https://www.cnblogs.com/ClassNotFoundException/p/6198805.html。

解决方法:先使用strval()转为字符串,再使用intval(),官方文档推荐的方案
 

还有一篇鸟哥的文章

https://www.laruence.com/2013/03/26/2884.html

猜你喜欢

转载自blog.csdn.net/dw5235/article/details/107369369