gpt4 book ai didi

java - Java Math.pow 的错误结果

转载 作者:搜寻专家 更新时间:2023-10-30 21:02:54 26 4
gpt4 key购买 nike

如果你尝试运行下面的代码

public class Main {
public static void main(String[] args) {
long a = (long)Math.pow(13, 15);
System.out.println(a + " " + a%13);
}
}

你会得到“51185893014090752 8”

13^15的正确值为51185893014090757,即比Math.pow返回的结果大5 。有什么可能导致它的想法吗?

最佳答案

您已经超出了 double 浮点值中可用的有效数字位数(~15 到 16)。一旦这样做,您就不能指望结果的最低有效数字实际上是有意义的/精确的。

如果您需要在 Java 中进行任意精确的运算,请考虑使用 BigIntegerBigDecimal

关于java - Java Math.pow 的错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9956471/

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