PHP关于在开发微信支付钱数差一分的问题

mac2026-08-22  1

PHP关于在开发微信支付钱数差一分的问题

在调用微信时候我们都是按照分为单位传的支付金额。但是PHP在精度问题上我还是对此遇到。 运行: echo (int)(0.58*100) ; 结果是57 而不是我想象中的58. 然后我们通过二进制算一下:

0.58的二进制表示基本上(52位)是: 0010100011110101110000101000111101011100001010001111 转换成浮点数(64位双精度)

0.58 -> 0.57999999999999996

这就找到问题的根源了

来我们换一种方法来解决问题: echo (int)((0.58*1000)/10); 输出结果:58

竟然是曲线救国啊!

最新回复(0)