Javascript 自然对数e==1

Javascript 自然对数e==1,javascript,math,Javascript,Math,为什么 但是如果n>9007199254740991,函数将返回1 9007199254740991是ECMAScript计算中使用的最大安全整数(也预定义为常量Number.MAX\u safe\u integer) 这是JavaScript数学的局限性,在双精度浮点数上进行计算。如果超过该常数,则在任何点都可能出现不可预测的结果,例如9007199254740992==9007199254740993计算为true 以下是与此问题相关的。:尝试不带**n的函数,看看是否可以找到任何有趣的内容

为什么

但是如果n>9007199254740991,函数将返回1


9007199254740991
是ECMAScript计算中使用的最大安全整数(也预定义为常量
Number.MAX\u safe\u integer

这是JavaScript数学的局限性,在双精度浮点数上进行计算。如果超过该常数,则在任何点都可能出现不可预测的结果,例如
9007199254740992==9007199254740993
计算为
true


以下是与此问题相关的。

:尝试不带
**n
的函数,看看是否可以找到任何有趣的内容。@Qantas94Heavy您知道如何计算
数字.MAX\u SAFE\u INTEGER
吗?为什么会有MAX SAFE INTEGER,什么是安全?很快-因为在JavaScript中,每个数字都是一个
双精度
,并且在计算中涉及到“不安全”数字的舍入,这导致了类似
x+1
等于
x+2
,这是不正确的。我已经发布了一个链接到一个文档,很好地解释了这一点。
function a (n){return (1+1/n) ** n }
a(9007199254740991) === 7.389056098930647