我基本上是为了学习Java而使用数据类型,这是我很困惑的地方。

double douVar = 30000000000.323262342134353;
int intVar = (int)douVar; // casting
System.out.println(intVar);


现在将douVar转换为字符串,我将覆盖double变量:

douVar = 345839052304598; // returns an error: Integer number too long
System.out.println(Double.toString(douVar));


完全错误:

Error:(20, 18) java: integer number too large: 345839052304598


我正在使用IntellijIDEA编译器。我没有在eclipse上尝试过,但是我认为编译器不会有太大的不同。
这是否意味着强制转换也会导致修改原始变量?

最佳答案

在Java中,默认情况下,不带小数的常数为int。
有两种将常量定义更改为双精度的方法:


最后添加dD
在末尾添加.0




douVar = 345839052304598d;
douVar = 345839052304598.0;

10-06 07:17