gpt4 book ai didi

javascript - Edge 浏览器中的意外 toPrecision() 行为

转载 作者:行者123 更新时间:2023-11-29 15:18:19 26 4
gpt4 key购买 nike

这个真的让我很困惑。

var a = 0.0003;
var b = a.toPrecision(3);

我原以为 b 是“0.000300”,这正是我在 Firefox、IE 和 Chrome 中得到的结果。但不是在 Edge 中。 Edge 给了我“0.000200”。

有人知道发生了什么事吗?

如果有人想看这里的jsfiddle:http://jsfiddle.net/dajp/2b47qLg0/

(我使用的是 Edge 40.15063.0.0 和 EdgeHTML 15.15063,如果有区别的话。)

非常感谢。

最佳答案

这可能不是最好的方法,但它解决了边缘问题。

这只是对您的 jsfiddle 的 javascript 的修改:

runWeirdness = function() {
a = 0.0003;
b = a.toFixed(3 + decimalPlaces(a));
document.getElementById("para").innerHTML = "Answer is: " + b;
}

function decimalPlaces(num) {
var match = (''+num).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
if (!match) { return 0; }
return Math.max(
0,
// Number of digits right of decimal point.
(match[1] ? match[1].length : 0)
// Adjust for scientific notation.
- (match[2] ? +match[2] : 0));
}

toFixed()toPrecision() 之间的基本区别是 toFixed(n) 提供小数点后的第 n 个长度,而toPrecision(x) 提供 x 总长度,包括小数点前。

关于javascript - Edge 浏览器中的意外 toPrecision() 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46666366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com