您的位置:首页 > 编程语言 > Java开发

Java基本数据类型:long与float之间的转换疑惑

2010-07-12 00:14 821 查看
有时会听到这样的声音:位数多的向位数小的转换要强制类型转换,那下面的是特例吗?

 

64位的long转换成32位的float不需要强制类型转换。

 

Why?本人认为因为float能表示的取值范围比long大得多,long的范围是

 

-9223372036854775808~~9223372036854775807,

 

而float的取值范围是-3.4E+38~~3.4E+38;

 

但是这样的转换后会造成掉失精度,因为float只能保证的有效数字是7位,

 

如下面的例子。

public class Convert {
    public static void main(String[] args) {
        float f;
        long l = 9999999999999L;
        f = l;
        System.out.println(f);
    }
}

结果:9.9999998E12
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  float java string class