浮点数字,也就是人们知道的实数(real),当计算的表达式有精度要求时被使用。例如,计算平方根,或超出人类经验的计算如正弦和余弦,它们的计算结果的精度要求使用浮点型。Java 实现了标准(IEEE-754 )的浮点型和运算符集。有2种浮点型,单精度浮点型(float )及双精度(double )浮点型。
他们的长度和变化范围如表3-2 所示:
表3-2 浮点型分类及其特性
名称 位数 数的范围
DOUBLE 64 1.7E–308~1.7E+308
float 32 3.4E–038~3.4E+038
下面讨论浮点型的每一种类型。
3.4.1 单精度浮点型(float)
单精度浮点型(float )专指占用32位存储空间的单精度(single-precision )值。单精度在一些处理器上比双精度更快而且只占用双精度一半的空间,但是当值很大或很小的时候,它将变得不精确。当你需要小数部分并且对精度的要求不高时,单精度浮点型的变量是有用的。例如,当表示美元和分时,单精度浮点型是有用的。
这是一些声明单精度浮点型变量的例子:float hightemp,lowtemp;
3.4.2 双精度型(double )浮点型
双精度型,正如它的要害字“double ”表示的,占用64位的存储空间。在一些现代的被优化用来进行高速数学计算的处理器上双精度型实际上比单精度的快。所有超出人类经验的数学函数,如sin( ),cos( ) ,和sqrt( )均返回双精度的值。当你需要保持多次反复迭代的计算的精确性时,或在操作值很大的数字时,双精度型是最好的选择。
下面的短程序用双精度浮点型变量计算一个圆的面积:
// Compute the area of a circle.class Area {public static void main(String args[]) { double pi,r,a;
r = 10.8; // radius of circlepi = 3.1416; // pi,approximatelya = pi * r * r; // compute areaSystem.out.println("Area of circle is " + a);
}
}