java中 long a=10000000000; 为啥会报错

如题所述

正确的写法
long a=10000000000L; //将10000000000 这个整数常量,声明为long类型。
报错原因是:Java中整数类型的值默认成int类型,占4个字节,能表示的最大值是2的31次方减一,约2乘十的九次方。10 000 000 000不带L时,会被默认成int类型,但这个值远远超过int类型能表示的最大值,于是报错。
long类型占八个字节,能表示的最大值为2的63次方减一,约为9 乘十的十八次方,能表示的最小值是-2的63次方。10000000000这个值处在long类型的表示范围内,所以声明成一个long类型常量10000000000L不会出错。将long类型常量赋值给long类型变量,不存在数据类型转换的类型不兼容问题。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-20
java中定义
long型的数据时要在数据后面加上L;
在不加的情况下,系统默认为double型的;
就跟定义float浮点型是要加f一样;
故此处应加L写为
long a=10000000000L;
第2个回答  2013-02-20
long a=10000000000L; 准确书写方式本回答被提问者采纳