关于基本数据类型long跟float默认转换问题

问题提出:

float类型数字在计算机中用4个字节存储 long类型数字在计算机中用8个字节存储 作运算时,8个字节的long类型为什么会转换成4字节的float?理论上4个字节的类型是放不下8个字节类型的数据的。

分析:

默认转换顺:

byte(1字节)-short(2字节)-int(4字节)-long(8字节)-float(4字节)-double(8字节)-char(2字节)-boolean(1字节)

存储范围:

这里写图片描述
从图中可见:
这里写图片描述

他们用科学计数法的方式不一样(底层存储结构不一样)。

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

所以3.4*10^38 > 2^62-1

结论:

因为底层存储的方式不同所以导致我们误认为float类型不能存储long类型的数据。 实际是float表示的数据类型比long的范围要大。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值