可能的Javascript数字错误

可能的Javascript数字错误,javascript,numerical,Javascript,Numerical,此代码段: Math.pow(10,20)+20000 == Math.pow(10,20) + 10000 计算结果为true。这是一个JS错误吗?否。Javascript使用浮点数来表示大值,而值1020超过了浮点数的精度。当您向结果中添加一个相对较小的值(如20000或10000)时,结果的总和是无法区分的。否,这是IEEE浮点值。检查此项,最轻微的搜索会告诉您发生了什么。10^20不会超过FP数的精度,这里起作用的是,浮点数的分布并不均匀,随着其大小的增加,它们变得越来越稀疏。

此代码段:

Math.pow(10,20)+20000 == Math.pow(10,20) + 10000

计算结果为true。这是一个JS错误吗?

否。Javascript使用浮点数来表示大值,而值1020超过了浮点数的精度。当您向结果中添加一个相对较小的值(如20000或10000)时,结果的总和是无法区分的。

否,这是IEEE浮点值。检查此项,最轻微的搜索会告诉您发生了什么。10^20不会超过FP数的精度,这里起作用的是,浮点数的分布并不均匀,随着其大小的增加,它们变得越来越稀疏。