gpt4 book ai didi

java - JAVA中从double到long的类型转换

转载 作者:行者123 更新时间:2023-12-01 08:55:03 25 4
gpt4 key购买 nike

class test{
public static void main(String... args){
double d=5.637;
System.out.println("double is:"+d);
long a=(long)d;
System.out.println("long is:"+a);
}
}

上述代码的输出是 long is : 5 ,符合预期。

但是当我运行以下代码时:

class test{
public static void main(String... args){
double d=12345678901234567890.637;
System.out.println("double is:"+d);
long a=(long)d;
System.out.println("long is:"+a);
}
}

输出不符合预期。结果是 long is:9223372036854775807

我想问为什么当我取 double 时会发生这种情况。

最佳答案

为了最安全的转换,您应该使用 Math.round(d) ,并且最大 long 大小为 9,223,372,036,854,775,807 您正在尝试将更大的 double 值分配给 long

编辑:您可以使用 BigInteger 而不是 Long

关于java - JAVA中从double到long的类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42083953/

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