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.php.net/manual/zh/function.intval.php


Author:leedaning
本文地址:https://blog.csdn.net/leedaning/article/details/103074520

你可能感兴趣的:(php)