关于数据类型转换的问题

关于数据类型转换的问题

既然float的取值范围大于long 类型的取值范围,那么为什么long 类型数值转换为float类型数值的时候会部分损失精度?求解

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕阿莹 2018-11-30 10:09:14

老师在步骤一 · 4-3 数据类型转换案例  的视频中有具体的演示,同学可以看一下,

float型只能精确到小数点后7位,第八位是不准确的。

例如我们有个长整型是一个9位数甚至更多,因为float型只能精确到小数点后7位,他是通过10的多少次方来表示更大数的,所以就有可能发生精度损失。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

慕莱坞1612583 2018-11-28 12:14:21

float占用了4个字节而long类型占用了8个字节,long类型的取值范围是大于float类型的,当long类型数值超过float类型数值范围时,需要强制转换,此时会出现精度损失。

  • 提问者 慕无忌8250245 #1
    long l1 =123L; float f =l1 ;这里根本不需要进行强转。编译不会报错。 并且你说的long 类型取值范围大于float 的取值范围是错误的。没看清我的提问。
    2018-11-29 20:23:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师