微信支付少扣一分钱

说明:在价格处理方面,往往是两位小数换算成分,如18.90换算成分1890,直接乘以100也就行了,但是又使用了一个转换为整数类型的函数intval() 这下子结果就不对了。

 

这是因为浮点类型的数字不能在不丢失一点儿精度的情况下通过内部二进制转换得到结果的,换句话说就是浮点类型的计算都会丢失精度的。 

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

解决方案:intval(strval($price*100)) = 1890 ;

猜你喜欢

转载自www.cnblogs.com/jiaoda/p/10334404.html