gpt4 book ai didi

javascript - 如何防止 Math.sin(Math.PI) 出现舍入误差?

转载 作者:行者123 更新时间:2023-11-30 12:49:09 24 4
gpt4 key购买 nike

在 JavaScript 中计算 Math.sin(Math.PI) 时,结果是 1.2246063538223773e-16 而不是 0。我想这是由于 JavaScript Number 的精度有限和 sinus 算法的精度有限。

如何防止这些舍入错误?使用精度更高的 BigNumber 类型和精度更高的正弦算法会有帮助吗?或者这只会给您带来更小的舍入误差但仍然是错误?

最佳答案

我使用 Number.EPSILON来解决舍入错误。这主要是受支持的,但链接页面有一个 IE 的 polyfill

 var sinTheta = Math.sin(theta);
if (Math.abs(sinTheta) < Number.EPSILON) {
sinTheta = 0;
}

关于javascript - 如何防止 Math.sin(Math.PI) 出现舍入误差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21574157/

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