gpt4 book ai didi

actionscript-3 - 为什么 Actionscript 为大值的模数显示不同的值?

转载 作者:行者123 更新时间:2023-12-04 22:23:36 25 4
gpt4 key购买 nike

在 Actionscript 3 中使用 Flash CS4 我键入以下内容:

 trace(Math.pow(97,83) % 205);

结果是 86。但是如果我输入 Wolfram-Alpha:
 97^83 mod 205

我得到 13,这是正确的答案。为什么 actionscript 显示错误的值?

谢谢,
Y_Y

最佳答案

这是由于 Number 类型的浮点精度所致。 Flash 仅使用 64 位来表示 Math.pow(97,83) 的结果,其中 53 位用于描述浮点数的尾数部分。使用 53 位时,在需要舍入数字之前,您只能获得大约 15-16 位的精度。由于 Math.pow(97,83) 是一个大约 164 位长的数字,Flash 保持形式为 7.98093813043768e+164 的近似值

由于精度损失,这不是 Math.pow(97,83) 的确切值,因此在计算 mod 时会产生不好的结果。

Wolfram-Alpha 可能使用专门的库来计算大数而不会损失精度。我不知道 Actionscript 3 有任何这样的库,但谷歌可能会在那里提供帮助;)

关于actionscript-3 - 为什么 Actionscript 为大值的模数显示不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10380824/

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