Java float數據類型

當評估求值需要分數精度的表達式時,可使用浮點數(也稱爲實數)。
包含小數部分的數值稱爲實數,例如,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中,實數可以使用科學記數法表示爲浮點字面量。在科學記數法中,數字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

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類型可能會導致精度損失。