本帖最后由 emos-c 于 2013-6-22 20:34 编辑
java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。整数默认int,小数默认double。
由于小数默认double类型,所以直接输入float f=2.0;会报错,提示可能会损失精度,可以float f=2.0f;,标识2.0为单精度。
我的问题是4属于整数,整数默认int型,byte b=4;和float f=2;却都不会报错,但是 byte b=4b;会报错,为什么呢?
- <P>
- int a =3; //编译通过
- byte b =4; //编译通过
- byte b1 =4b; //编译报错,提示看不懂,在b的位置上需要“ ;”
- short s =4 //编译通过
- short s1 =4s; //编译报错,提示同 byte b1=4b;
- float f =2.0f;//编译通过
- float f1 =2.0; //编译报错,提示有可能损失精度
- float f2 =2; //编译通过,打印结果2.0
- double d =2.3; //编译通过
- double d1 =2.3d;//编译通过
- long l =4; //编译通过
- long l1 =4l; //编译通过</P>
- <P> </P>
- <P>
- </P>
复制代码 |