为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 short s = 1 不报错

为什么 short s = 1 不报错

胡子哥哥 2019-01-17 23:31:46
1 是 int 类型,为什么 short s = 1 不报错,而 1.1 是 double 类型 float f = 1.1 却报错?
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

因为int如果超了short范围,会被截取低位部分,没超会正常赋值.

但double类型是不可预测的,可能很简单的数字都占满了所用的字节,比如:0.5,在内存中其实表示为:0.499999999999
这样的数字截取低位部分就是另一个数字了,这显然不能容许.所以float赋值小数必须加标记,便于编辑器在编译期间检查.

查看完整回答
反对 回复 2019-02-12
  • 1 回答
  • 0 关注
  • 1509 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号