gpt4 book ai didi

java - Java 的 Math.pow 是否对结果进行四舍五入?

转载 作者:搜寻专家 更新时间:2023-11-01 01:25:56 26 4
gpt4 key购买 nike

今天我遇到了 Math.pow() 的一个特殊行为。我无法理解以下 Java 代码的输出:

long N1 = 999999999999999999L;
System.out.println("N1 : " + N1);

long N2 = (long) Math.pow(N1, 1);
System.out.println("N2 : " + N2);

我得到以下输出:

N1 : 999999999999999999
N2 : 1000000000000000000

我一直认为 Math.pow() 会产生准确的结果,只要传递给它的参数是整数或长整数,前提是没有溢出(在这种情况下是正确的)。

最佳答案

因为它将 long 转换为 double

System.out.println((double)999999999999999999L);

输出:

1.0E18

System.out.println((long)(double)999999999999999999L);

输出:

1000000000000000000

关于java - Java 的 Math.pow 是否对结果进行四舍五入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27680958/

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