gpt4 book ai didi

javascript - Math.pow(64, 1/3) 返回不精确的 4

转载 作者:行者123 更新时间:2023-11-28 18:44:50 24 4
gpt4 key购买 nike

今天我在 JavaScript 中玩弄 Math.pow() 时,我注意到:

  1. Math.pow(8, 1/3)Math.pow(27, 1/3) 分别返回 2 和 3
  2. Math.pow(64, 1/3) 和所有其他更高完全平方数返回长近似 float ,例如 3.99999999999999996。

Test in Google Chrome's Developer Tools' Console

我听说过浮点精度以及一些小数如何显得不精确,但这对我来说很突出,因为它只发生在四次方(64)开始。谁能解释一下为什么会发生这种情况?

最佳答案

首先,ECMA-262对于 Math.pow 返回结果的精度不做任何保证。它指出:

Returns an implementation-dependent approximation to the result of raising x to the power y.

因此,对于不同的实现,您得到的可能会有所不同。

我假设 1、8 和 27 的立方根分别与精确的 1、2 和 3 的偏差非常小,因此不会在结果中反射(reflect)为分数。但当考虑的数字变大时,与之相关的误差也会变大。

注意:

Math.pow(1000,1/3)
-> 9.999999999999998

Math.pow(1000000,1/3)
->99.99999999999997

它将继续偏离整数值。

关于javascript - Math.pow(64, 1/3) 返回不精确的 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35545510/

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