在程序中经常需要使用浮点数,并通过变量来存储浮点数,以方便在程序中使用。请说明定义并初始化浮点数的语句float num=3.14159是否正确?
Java语言提供了两种用于存储浮点数的基本类型,即float和double,而Java语言默认的浮点类型是double,所以当在程序代码段中为float型的变量赋值3.14159时,会被认为是double类型。由于double型数据占用的存储空间超出了float型数据的存储空间,所以需要强制类型转换为float类型或者为浮点数添加字母f或F作为后缀,而语句floatnum=3.14159,既没有强制类型转换,也没有为浮点数3.14159添加后缀f或F,所以语句float num=3.14159是错误的.
为float型变量num正确赋值的代码如下:float nilm= 3.14159f 或float num=3.14159F;
在为float型的变量赋值为浮点数时,建议尽量少用强制类型转换,因为当把高精度的double型数据,强制类型转换为低精度的float型数据时,会有精度损失,而正确的做法则是在浮点数值后加后缀f或F,这样就可以正确地为float型变量赋值了.
http://www.zencartme.me/archives/3197