程序语言之灵魂续一

来源:互联网 发布:达芬奇中奖密码算法 编辑:程序博客网 时间:2024/04/29 18:16

浮点数类型与双精度浮点数类型

      在日常生活中经常会使用到小数类型的数值, 如身高、 体重等需要精确的数值时,整数就不能满足程序设计的要求了。在数学中,这些带有小数点的数值称为实数,在Java里,这种数据类型称为浮点数类型(float),其长度为4个字节,有效范围为-3.4×10^38 到 3.4×10^38。当浮点数的表示范围不够大的时候,还有一种双精度(double)浮点数可供使用。双精度浮点数类型的长度为 8 个字节,有效范围为-1.7×10^308 到1.7×10^308 。
浮点数的表示方式,除了指数的形式外,还可用带有小数点的一般形式来表示。
举例来说,想声明一个double类型的变量num与一个float类型的变量sum,并同时给sum赋初值3.0,可以在程序中做出如下的声明及设置:
double num ;//声明sum为双精度浮点型变量
float sum = 3.0f ;//声明sum为浮点型变量,其初值为3.0
声明之后,Java 即会在可使用的内存空间中,寻找一个占有8个字节的块供num变量使用, 其范围在-1.7×10^308 到 1.7×10^308之间,寻找另一个占有4个字节的块供sum变量使用,而这个变量的范围只能在-3.4×10 38 到 3.4×10 38 之间。在此例中,sum的初值为 3.0。
下列为声明与设置 float 与 double 类型的变量时应注意的事项:
double num1 = -6.3e64 ; // 声明num1为double,其值为-6.3×1064
double num2 = -5.34E16;//e也可以用大写的E来取代
float num3 = 7.32f ;//声明num3为 float,并设初值为7.32f
float num4 = 2.456E67; // 错误,因为2.456×1067 已超过float可表示的范围
值得一提的是,使用浮点型数值时,默认的类型是 double,在数值后面可加上 D或是 d,作为 double 类型的标识。在 Java 中,D 或 d 是可有可无的。在数据后面加上F 或是 f,则作为 float 类型的识别。若是没有加上,Java 就会将该数据视为 double 类型,而在编译时就会发生错误,错误提示会告诉设计者可能会失去精确度。
下面举一个简单的例子,在下面的程序里,声明一个 float 类型的变量 num,并赋值为 3.0,将 num*num 的运算结构输出到控制台上。

look,看小例子
// 下面这道程序说明了浮点数类型的使用方法
 public class TestJava{
public static void main(String args[]){
float num = 3.0f ;
 System.out.println(num+" *"+num+" = "+(num*num));
 }
}
输出结果:
-----------------------------------------------------
3.0 * 3.0 = 9.0
0 0