(1) 比如int x = 4331;
x = x/1000;
然后输出x,不报错,但是结果是4,是不是这就叫损失了精度?但为什么不报错?
(2)然后用short又尝试了下
short x = 4331;
x = x/1000;
然后输出x,报错,int 转short损失精度;
为什么会是int转short损失精度?是因为1000默认为int?
(3)再尝试
short x = 4331,y = 1000;
x = x/y;
然后输出,报错,int转short损失精度;
这个int怎么来的?x y都定义为short了何来int?
(4)加法也是
int x = 2000000000,y = 2000001111;
x = x + y;
输出x,不报错,但是结果是负数;
都已经超过int取值范围了,而且结果都错了,为什么还不报错?
(5)short加法
short x = 31111,y = 30000;
x = x+y;
输出,报错,int转short损失精度;
为什么int超了,结果错了都不报错?short就报错?求大神指点,小白真的不明白。
|
|