fre*_*ner 0 java type-conversion
我基本上是在玩数据类型,以便学习java,这就是我感到困惑的地方.
double douVar = 30000000000.323262342134353;
int intVar = (int)douVar; // casting
System.out.println(intVar);
Run Code Online (Sandbox Code Playgroud)
现在转换douVar为字符串我覆盖double变量:
douVar = 345839052304598; // returns an error: Integer number too long
System.out.println(Double.toString(douVar));
Run Code Online (Sandbox Code Playgroud)
完整错误:
Error:(20, 18) java: integer number too large: 345839052304598
Run Code Online (Sandbox Code Playgroud)
我正在使用IntellijIDEA编译器.我没有在eclipse上尝试这个,但我认为编译器不会那么不同.这是否意味着施法也会导致修改原始变量?
在Java中,默认情况下,没有小数的常数是整数.有两种方法可以将常量定义更改为double:
d或D最后..0在末尾douVar = 345839052304598d;
douVar = 345839052304598.0;
Run Code Online (Sandbox Code Playgroud)
Java解释345839052304598为整数.
在Java中,Integer的长度为4个字节,因此其值的范围–2 147 483 648为2 147 483 647.(你的号码显然不在那个范围内)
要使Java将数字视为double,您必须编写:
double d = 345839052304598D;
/* or */
double d1 = 345839052304598.0;
Run Code Online (Sandbox Code Playgroud)
(同样适用于a long,你必须写L而不是D在那种情况下)