跳到主要内容
CNode

toFixed失灵

问答
Jjowang2016发布于 8 年前最后回复 8 年前
746380

在小程序中 接口返回的值是0.331325 使用toFixed(4)再乘100 以便百分比展示 结果得到了33.1299999999995% 和小程序环境有关系吗?还是toFixed(4) 本身有坑呢?怎么解决这个bug呢?

查看回复

回复 (7)

L
linxiaoziruo#78 年前

这是计算机二进制存储的硬伤,不是JS的独有问题。解决办法还是楼上的先保留精度计算完再toFixed。

E
enmoon#68 年前

0.1 + 0.2 !== 0.3

B
blackmatch#58 年前

toFixed返回的是字符串的值。我一般这样玩:

Math.round(分子/分母 * 10000) / 100.00

四舍五入保留2位小数百分率。

R
robberfree#48 年前

这和期望0.1+0.2===0.3是一样的问题。不是toFixed的问题,而是计算过程中精度丢失了。toFixed放在最后一步吧。

L
linkenliu#38 年前

就不能先乘再toFixed?

M
myy#28 年前

如果你不最后乘100,那么 toFixed() 就没问题。所以根本就不是 toFixed() 的问题。

J
jowang2016#18 年前

刚才调试了一下 不是tofixed问题 问题在于乘100之后 原来的数字精度就消失了 成了一长串数字

参与回复

登录后即可参与回复。登录