PHP 解决数值类型转换 精度丢失问题

  • 后端
  • 2022-05-23
  • 877 已阅读
  • 作者: shinebxy
  • 来源: CSDN
简介在向微信发送请求参数时,尤其是金额,需要把元转换为分,直接乘以100就可以,但是又使用了转化整数类型的函数:int 或者 intval 结果都会少1

在向微信发送请求参数时,尤其是金额,需要把元转换为分,直接乘以100就可以,但是又使用了转化整数类型的函数:

int 或者 intval 结果都会少1

可以看出原本结果应该是1633的,但是使用了函数intval() 和 (int) 之后结果居然变为了1632了,这是由于浮点类型的数字不能在不丢失一点儿精度的情况下通过内部二进制转换得到结果的,换句话说就是浮点类型的计算都会丢失精度的。

该函数的解决方法手册上也给出了,就是需要先使用strval() 函数将变量转成字符串类型,使用情况及结果如下:

很赞哦! ( 0 )