黑马程序员技术交流社区
标题:
byte b=4b;编译为什么会报错?
[打印本页]
作者:
emos-c
时间:
2013-6-21 14:47
标题:
byte b=4b;编译为什么会报错?
本帖最后由 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>
复制代码
作者:
Just_Only
时间:
2013-6-21 15:09
首先你的这个byte b1 =4b;写法就是错误的,只是在定义浮点型的时候后面才有F或是D,而整数定义的时候后面是不需要加标识的,所以你这个定义会报错,因为java虚拟机不识别。
作者:
ㄗs:/|丶hearts
时间:
2013-6-21 15:12
byte b1 =4b; short s1 =4s; 直接写byte b1 =4; short s1 =4; 不要加b ,s 做后缀
作者:
zhxueqiu
时间:
2013-6-21 16:31
不是这样写的了byte b=4b;
应该这样写 byte b=4;不需要再4后面加b.
只有float f = 12.3f;和long l =2222222L;后面加相应的字母
作者:
8047107
时间:
2013-6-21 20:35
嗯 不需要加的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2