gpt4 book ai didi

Java 的 Math.pow 返回 1 个错误

转载 作者:行者123 更新时间:2023-11-30 07:09:29 26 4
gpt4 key购买 nike

如果我在 Java 中运行 Math.pow(15, 14),结果如下

29192926025390624

但是,如果我在 Windows 的科学计算器中运行 15^14,它会返回

29192926025390625

这是因为 Math.pow(a, b) 使用 double 进行计算吗?

如果是这样,解决此类问题的最佳方法是什么? (例如,在 Java 中获得 15^14 的正确答案)

最佳答案

舍入误差正如您所怀疑的那样,因为 Math.pow() 使用了浮点运算。 double 不能保存值 29192926025390625,如以下代码片段所示:

double d = 29192926025390625L;
System.out.println(d);

打印

2.9192926025390624E16

您可以使用 BigInteger 来避免舍入问题:

BigInteger b = new BigInteger("15");
BigInteger result = b.pow(14);

关于Java 的 Math.pow 返回 1 个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23041335/

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