黑马程序员技术交流社区
标题:
long float 类型
[打印本页]
作者:
孙运强
时间:
2011-9-17 14:44
标题:
long float 类型
long是8个字节,而float是4个字节。怎么long相对于float是低级数据类型了,相互怎么转化,详细说说所占内存大小及范围变化。
作者:
匿名
时间:
2011-9-17 16:12
long类型可以隐式转换为float类型。
隐式转换也叫自动类型转换,即当我们要将一个变量类型中的值赋给另外一种类型的变量时,如果被赋值的变量字节大小大于准备赋值的变量字节大小,就可以自动转换成被赋值的变量类型。
但是这里long是8个字节,而float是4个字节,为什么反而能隐式转换呢?
两者表示数据的方式不一样,float采用IEEE的表示法,而long是用位数来控制的范围。
long和float从根本上讲它们表示的不是一类数,前者是精确值,而后者是非精确值。
float的字节宽度没有long大,但它的表现值宽度要宽得多,因此long到float是没有问题的。
long -9.2*10^18 ~~ 9.2*10^18
float -3.4*10^38 ~~ 3.4*10^38
可以看出来float表示的范围要比long的范围大,尽管float的位数少。
所以,占用内存多不表示它允许的取值范围大,long隐式转换成float只可能发生精确度下降,但不会导致数据丢失。
作者:
724681149
时间:
2011-10-15 15:02
似乎很在理,这题却是不大明白。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2