html52.com
我爱小程序-开发者交流社区

小程序四舍五入算法有问题,小数点后两位相乘乘不尽

问题模块 框架类型 问题类型 操作系统 工具版本
开发者工具 小程序 Bug Windows 1.02.1812271

208.5*5.85=*.4999999999



网友回复

连胜:

浮点数的坑,不是小程序的产物,这个锅不是微信的,是JS的坑!在做PC端和普通H5时,照样会有这问题。

在小程序内,用到浮点数的场景也不少,最多的,应该是商品购买,单价0.9、9.9、19.9等,再乘于奇数,大概率出现楼主说的bug

在小程序内,用到浮点数的场景也不少,最多的,应该是商品购买,单价0.9、9.9、19.9等,再乘于奇数,大概率出现楼主说的bug建议自己在JS中四舍五入一下~

建议自己在JS中四舍五入一下~


如果调用小程序的支付API,用户反馈一直支付失败,很可能是这个bug引起。支付的API会校验前端传入的价格,与服务端生成订单时的价格是否一致,不一致的话,肯定支付失败。

把你的头低下:

我这里有一种计算方式能解决正在全面测试

for(let i=80;i<160;i++){

     for (let j = 19900; j <= 20000; j++){

       if(j%5==0){

         let b = i*5


         let a = Math.round((j/ 100 * b).toFixed(2)) / 100  -----》这里是重点

         // console.log(a)

         // console.log(b)

         let data = {

           consumePrices: a,

           price: b / 100,

           amount: j/ 100,

           listPirce: b / 100 + 2

         }

         

       }

     }

   }


卢霄霄:

完了完了,不止这么大的浮点数运算有问题,连 0.1+0.2这种都算不对了。。

不对啊。。你这个算得出来啊

208.5*5.85

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付