当评估求值需要分数精度的表达式时,可使用浮点数(也称为实数)。

包含小数部分的数值称为实数,例如,3.2,0.114-1.19等。Java支持浮点数格式。 Java使用IEEE 754浮点标准存储实数。floatdouble,分别表示单精度和双精度数。

它们的宽度和范围如下所示:

名称

以位为单位的宽度

近似范围

double

64

4.9e-324 ~ 1.8e+308

float

32

1.4e-045 ~ 3.4e+038


浮点数据类型

32位来存储浮点数。

浮点数也称为单精度浮点数。它可以表示一个小到1.4×10^-45和大到3.4×10^38的大小的实数。在该范围内它可以是正的或负的。fF结尾的实数称为浮点文字。 浮点文本可以用以下两种格式表示:

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

浮点字面量

十进制数字格式的浮点字面量示例如下:



float f1  = 1F; 
float f2  = 2.F; 
float f3  = 3.0F; 
float f4  = 4.51F; 
float f5  = 5.0F; 
float f6  = 56.78f;

  
  
   
   
    
    Java
   
   
  
  
float f1  = 1F; 
float f2  = 2.F; 
float f3  = 3.0F; 
float f4  = 4.51F; 
float f5  = 5.0F; 
float f6  = 56.78f;

32.5×10-1被写为32.5E-1。 作为浮点字面量,它可以写作32.5E-1F32.5E-1f

所有以下浮点字面量表示相同的实数42.5

4.25F
42.5E-1F
0.425E+1F
0.425E1F
0.0425E2F
0.0425e2F
4.25E0F

  
  
   
   
    
    Java
   
   
  
  
4.25F
42.5E-1F
0.425E+1F
0.425E1F
0.0425E2F
0.0425e2F
4.25E0F

float数据类型定义两个零:+0.0F(或0.0F)和-0.0F。 +0.0F-0.0F都被认为是相等的。

float数据类型定义了两个无穷大:正无穷大和负无穷大。未定义浮点的一些操作的结果。 例如,将0.0F除以0.0F是不确定的。NaN(非数字)的float数据类型的特殊值表示。

Java有一个Float类,它定义了三个常量,分别表示正数无穷大,负无穷大和浮点数据类型的 NaN

下表列出了这三个浮点常量及其含义。

常量

含义

Float.POSITIVE_INFINITY

float类型的正无穷大

Float.NEGATIVE_INFINITY

float类型的负无穷大

Float.NaN

不是float类型的数值

Float.MAX_VALUE

float变量中表示的最大正值。等于3.4 x 10^38(约)。

Float.MIN_VALUE

float变量中表示。等于1.4×10^-45


intlongbyteshortchar)的值可以分配给float数据类型的变量,而不使用显式强制转换。float值分配给任何整数数据类型intlongbyteshortchar的变量之前,必须强制转换该值。intlong赋值给float类型可能会导致精度损失。