- 零基礎學Java程序設計
- 祝明慧編著
- 902字
- 2022-05-06 19:55:57
2.3.2 小數類型

根據對小數精確程度的要求不同,將小數類型分為兩種,分別為雙精度類型和浮點類型。下面將依次講解這兩種類型。
1.雙精度類型(double)
由于不能精確表示數據,所以小數默認使用相對更精確的雙精度表示。雙精度類型是默認類型,占8字節,如圖2.22所示。

圖2.22 雙精度類型占8字節
它的有效范圍為4.9E-324~1.7976931348623157E308,如圖2.23所示。

圖2.23 雙精度類型的范圍
注意:很多時候,在輸入1.7976931348623158E308后,運行顯示,是不會報錯的,這是因為小數的不精確性導致的。
助記:double是一個英文單詞,本身意思就是雙倍,其發音為[?d?bl]。
注意:有時候,為了強調一個數為雙精度類型,可以添加d或D,如3.14d、0.5D。
【示例2-5】下面將使用代碼展示雙精度類型的數據。代碼如下:

運行結果如下:

注意:%f是printf的格式符,用來顯示小數。
2.浮點類型(float)
很多時候不需要特別精確的數據。例如,使用圓周率的時候,只取小數點的后兩位即可。這時,就可以使用浮點類型(也被稱為單精度類型)。浮點類型占4字節,如圖2.24所示。

圖2.24 浮點類型占4字節
為了區分雙精度類型和浮點類型,必須在浮點類型的數據后面添加f或F,否則這個數據還是會按照雙精度類型的數據進行處理。
【示例2-6】下面將使用代碼展示浮點類型的數據。代碼如下:

運行結果如下:

注意:在計算機中,0.6是無法按照二進制方式精確表示的,所以輸出時會默認輸出6位有效數字,即0.600000。其中,小數點前的0和小數點不算有效位數。
浮點類型的有效范圍為1.4E-45~3.4028235E38,如圖2.25所示。

圖2.25 浮點類型的范圍
助記:float是一個英文單詞,本身意思就是浮動,其發音為[fl??t]。
注意:小數在存儲時都會將小數點進行浮動,這樣就會省去將一個小數分開保存(整數部分和小數部分)的麻煩。
由于雙精度類型和浮點類型的有效范圍不容易被記住,所以在使用這兩個類型時,可以通過最大值和最小值來查看有效范圍。其中,最大值可以使用MAX_VALUE獲取,最小值可以使用MIN_VALUE獲取。以下代碼用來獲取這兩個類型的最大值和最小值:

運行結果如下:

注意:在Java語言中,小數在運行時,會遇到無窮的情況。針對這種情況,Java語言提供了NEGATIVE_INFINITY、POSITIVE_INFINITY和NaN 3個特殊值,本書會在后面進行介紹。
綜上,雙精度類型和浮點類型都是用來表示小數的,但是它們所占用的字節數和有效范圍不同,如表2.5所示。
表2.5 小數的類型

- 數據科學實戰手冊(R+Python)
- TensorFlow Lite移動端深度學習
- Oracle 11g從入門到精通(第2版) (軟件開發視頻大講堂)
- Python Game Programming By Example
- 云原生Spring實戰
- Essential Angular
- Learning AndEngine
- Visual C++開發入行真功夫
- 后臺開發:核心技術與應用實踐
- Application Development with Swift
- SQL Server on Linux
- SQL Server實例教程(2008版)
- Learning Puppet
- Visual C++程序開發范例寶典
- PHP從入門到精通(第7版)