黑马程序员技术交流社区
标题:
关于java基本类型和运算符的问题?
[打印本页]
作者:
frozentears
时间:
2016-7-17 22:45
标题:
关于java基本类型和运算符的问题?
short s=1; s= s +1; 和s+=1;
前者损失精度,后者不报错,这是为什么?
char c='1'; c=c+1;会报错,损失精度这个我明白
可是char c=1+'1';不会报错 ,这又是为什么?
复制代码
作者:
小熊猫2016
时间:
2016-7-17 23:44
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者:
jmf332376308
时间:
2016-7-18 00:20
以取值范围的大小排列数据的基本类型. :double>float>long>int>char>short>byte s+1和c+1 系统会默认转化为int类型,因为int大于char和short 会损失精度所以会报错!
作者:
Sachiel
时间:
2016-7-18 00:25
以取值范围的大小排列数据的基本类型. :double>float>long>int>char>short>byte s+1和c+1 系统会默认转化为int类型,因为int大于char和short 会损失精度所以会报错!
作者:
zhangjiesss
时间:
2016-7-18 07:01
可能因为‘1’也是字符类型,所以+1没事
作者:
HEBEIREN
时间:
2016-7-18 08:30
个人认为,只要存在向下转型的表达式,都会报错,需要强制转换才能实现。对于“+=”操作,系统会自动执行类型转换操作,等价于s=(short)s+1。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2