黑马程序员技术交流社区
标题:
关于运算中损失精度的问题。。。求高手,求详解
[打印本页]
作者:
ts5210ts
时间:
2016-9-14 23:54
标题:
关于运算中损失精度的问题。。。求高手,求详解
整型运算中,long类型和float类型一起运算时,long类型会默认转换给float类型进行运算。那么问题来了
,long类型是8个字节,float类型是4个字节,默认转换为什么不会损失精度呢?
作者:
世之小卒
时间:
2016-9-15 10:44
这个上课老师有讲吧
作者:
mawenliang
时间:
2016-9-15 11:02
他们的存储放肆不同啊!
作者:
a869588615
时间:
2016-9-15 11:32
long使用4个字节存储,但因为也是整数,其中最高位是符号位,所以最大值只有2的63次方-1;float使用4个字节存储,一共32位,其中第1位是符号位,接下来8位用来表示指数,剩下的23位用来表示尾数,用8位表示指数,范围是-127~128次方,远远高于long的63次方,即float的精度比long高,所以在转换的时候不会损失精度。
作者:
Jerry007
时间:
2016-9-15 11:40
老师说的,小数和整数的存储不一样的.float存储范围远远大于long类型
作者:
a869588615
时间:
2016-9-15 11:40
a869588615 发表于 2016-9-15 11:32
long使用4个字节存储,但因为也是整数,其中最高位是符号位,所以最大值只有2的63次方-1;float使用4个字节 ...
说的有些不清楚了,是long的最大值就是2的63次方-1,float的最大值为3.40E+38。
作者:
灵动
时间:
2016-9-15 13:35
我只能说是底层运算结构不同!
作者:
请叫我大山
时间:
2016-9-15 13:48
自己计算一下float和long的范围就知道了,如果在深入点,就是内存分配不同,分符号位、指数为和小数位,有兴趣可以研究一下。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2