Java double数据类型

Java double数据类型

double数据类型使用64位来存储浮点数。double值也称为双精度浮点数。

它可以表示一个最小为4.9 x 10^-324,最大为1.7 x 10^308的数字。它可以是正的或负的。

所有实数被称为double字面量。 double字面量可以可选地以dD结尾,例如1.27d

后缀dDdouble字面量中是可选的。19.719.7d代表相同的double字面量。

Double字面量

double字面量值可以用以下两种格式表示:

  • 十进制数字格式
  • 科学计数法

十进制数字格式的double字面量值示例如下:

double   d1  = 8D ;
double   d2  = 8.; 
double   d3  =  8.0; 
double   d4  =  8.D; 
double   d5  =  78.9867; 
double   d6  =  45.0;

8是一个int字面量,而8D88.0double字面量。

还可以使用科学记数法表达double字面量。

double   d1  = 32.5E-1; 
double   d2  = 0.325E+1; 
double   d3  = 0.325E1; 
double   d4  = 0.0325E2; 
double   d5  = 0.0325e2; 
double   d6  = 32.5E-1D; 
double   d7  = 0.325E+1d; 
double   d8  = 0.325E1d; 
double   d9  = 0.0325E2d;

注意:double数据类型定义了两个零,两个无穷大和一个NaN。 它们由Double类中的常量表示。

下表列出了这些常量及其含义。

常量 含义
Double.POSITIVE_INFINITY 正无穷大的double类型
Double.NEGATIVE_INFINITY 负无穷大的double类型
Double.NaN 不是double类型的数值
Double.MAX_VALUE 可在double类型变量中表示的最大正值,等于1.7 x 10^308
Double.MIN_VALUE 大于零的最小正值,可在double类型变量中表示。等于4.9×10^-324。

可以将所有整型类型(intlongbyteshortchar)和float的值分配给double类型双精度数据类型的变量,而不使用显式强制转换。

int num1 = 15;
double   salary = num1;                    
salary = 12345;                            
double   bigNum = Double.MAX_VALUE;  
bigNum = 1234L;                      
double   justAChar = 'A';      

double   dInf = Double.POSITIVE_INFINITY;
double   dNan = Double.NaN;

在将double值分配给任何整数数据类型(intlongbyteshortchar)的变量之前,必须将其转换为整数类型。