收藏
回答

toFixed 的四舍五入 尾数是5应该舍去吗?

最近在做一个发票类的小工具。 toFixed 函数好像有问题,请官方给个解答

代码                                    输入结果

1.294.toFixed(2) ----------- 1.29  (四舍,这个没问题)

1.295.toFixed(2)------------1.29    (说好的五入,怎么也舍了?)

1.296.toFixed(2)------------1.30    (五入,这个没问题 ) 

发票上给出的1.295 结果是 1.30 。 这是怎么回事???

具体见下图。






最后一次编辑于  2019-08-30
回答关注问题邀请回答
收藏

3 个回答

  • 应勇
    应勇
    2020-03-28

    (Math.round(1.295 * 100)/100).toString()

    2020-03-28
    有用
    回复
  • 灵芝
    灵芝
    2019-08-30

    这个不是小程序的问题哈,可以参考一下:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed

    可以搜索一下看,比如:https://www.cnblogs.com/zhangycun/p/7880580.html

    2019-08-30
    有用
    回复 1
    • Mr.Qin
      Mr.Qin
      2019-08-30
      好吧,原来还是javascript那一套。原谅你了。还以为你们重构代码的时候把这些问题解决了。
      2019-08-30
      回复
  • !!!Σ(っ°Д°;)っ
    !!!Σ(っ°Д°;)っ
    2019-08-30

    1.295在内存中可能是1.2949999999999999999所以就被舍弃了,所以你可以引入专门处理精确小数的库,或者用其它方式

    2019-08-30
    有用
    回复 2
    • Mr.Qin
      Mr.Qin
      2019-08-30
      专门处理精确小数的库,有那些?
      2019-08-30
      回复
    • !!!Σ(っ°Д°;)っ
      !!!Σ(っ°Д°;)っ
      2019-08-30回复Mr.Qin
      或者直接搜一下toFixed解决方案就行,很多种解决方案。库的话你搜一下js高精度
      2019-08-30
      回复
登录 后发表内容
问题标签