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

为什么 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 关注
  • 1407 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信