本帖最后由 lossgel 于 2016-4-19 14:29 编辑
int 类型占用4个字节, 取值范围为 -2^31到2^31-1float 类型占用4个字节, 取值范围为-3.403E38 到3.403E38 属于单精度类型 浮点型
同样占用4个字节,而取值范围不同是由于float类型采用了IEEE754规定,详细见后面
下面讲为什么会报错
显示找到double类型,需要float,
证明float在进行定义时 系统 默认采用了double类型, 因为double类型比float类型更精确
所以当 a + b 进行计算时, int类型 转换到了double类型, 结果也变为double类型,
定义 c为float类型时, 计算结果 进行强制转换, 则可能损失精度, 所以报错
所以基础视频教程中 明确表明, 定义float 类型时 ,必须加标注 F 或者 f
如下图
long与float的取值范围谁大谁小
* 1位是符号位
* 8位是指数位
* 00000000 11111111 0到255 0为0 255代表无限大
* -126到127
* 23位是尾数位
* 每个指数位减去127 为-126到127
* A:它们底层的存储结构不同。
* B:float表示的数据范围比long的范围要大
* long:2^63-1
* float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1
大小顺序为byte,short,char -- int -- long -- float -- double
|