微信支付少一分钱

时间:2017-10-19 15:00:20   收藏:0   阅读:373

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

技术分享

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

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

intval(strval($price*100)) = 1890 ;

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!