浮点数精度问题

今天在sentry报告了一个诡异的错误

具体就是ping++回调的金额与订单金额不一致.

查看数据时发现订单中金额为532.8而ping++中金额为53279,wtf,为什么会少一分钱呢

  于是尝试 输出 532.8 * 100 (ps: 因为ping++支付金额单位为分) 结果 53280.0  but 一旦转为整形就为 53279 诡异的精度丢失    

  解决办法 对 ceil(532.8 * 100 ) 将精度调准后 再转为整形进不会有精度丢失了

 

posted @ 2019-07-01 20:33  nephyzw  阅读(267)  评论(0编辑  收藏  举报