如果我执行0.3-0.2,则得到0.9999999998,而不是0.1,有没有办法使它给出精确的小数?如果它不精确,就不能相信它。
答案 0 :(得分:1)
您可以尝试以下解决方案:https://30secondsofinterviews.org/#what-does-0-1-0-2-0-3-evaluate-to-
解决此问题的方法是使用一个函数,该函数通过定义两个值之间的差应小于的误差幅度(epsilon)值来确定两个数字是否大致相等。
const approxEqual = (n1, n2, epsilon = 0.0001) => Math.abs(n1 - n2) < epsilon approxEqual(0.1 + 0.2, 0.3) // true
答案 1 :(得分:0)
这是一个非常快速的答案,它会尽我所能总结所有标记:
用于标准数学:
(.3-.2).toFixed(10); //10 can be changed to whatever you like for your string
如果您需要用比这更多的数学运算:
Number((.3-.2).toFixed(10));
这最后一个将给您确切的数字类型期望。