在計算技術發展的某個階段,中央處理單元顯然需要硬件設備來處理浮點數。今天,所有計算機架構都可以有效地處理這些數字。當然,在編程語言中,您也不能沒有相應的數據類型。Java 中有兩種浮點數據類型:浮點型和雙精度型。java浮關鍵字定義在內存中占據 32 位的實數。我們將在本文中討論這些數字。
浮點數。實數如何存儲在計算機中?
為了在計算機內存中存儲實數,需要分配一定數量的位。實數存儲為符號(加號或減號)、螳螂和指數。什么是尾數和指數最好用一個例子來解釋。月球的近似質量是7 * 1022。這里7是螳螂,在22中是指數。當在屏幕上顯示大數字或反之亦然時,您可以看到像7E22這樣的條目。這是浮點數,這里的7是螳螂,22是10的指數或冪。這種表示法稱為指數表示法。
java浮點關鍵字和爪哇雙關鍵字
Java 中的浮點值(浮點數或實數)由以下類型表示浮和雙.正是這些關鍵字用于存儲小數點后某個符號的值。雙是具有雙精度的數字,盡可能接近給定值或作為計算結果獲得的值。java島雙用于任何數學計算(平方根、正弦、余弦、..),以及所有需要一定精度的計算。浮數據類型用于不太精確的浮點類型。為了節省內存,很少使用它。下面我們有一個表格,其中包含有關浮動和雙精度的主要信息,以及它們的差異。
所以浮keyword 表示一個數字,即在內存中占用 32 位或 4 個字節的單精度值。在某些處理器上,處理這些數字的速度更快,并且如前所述,與具有雙精度的數字相比,它們占用的空間更少。但是,不可能用速度明確地說出來。假設一些現代處理器處理雙精度數字的速度更快。
java浮點和雙重聲明
您可以聲明一些類型雙與其他類型的數字相同:但是,如果以這種方式表示浮點數,編譯器將要求您將數字的類型更改為雙精度。這是一個不正確的示例:
浮變量:運行此程序時會發生什么:事實是,使用浮點數是不可取的,這應該只是為了節省內存。Java中的所有實數小數都是
雙默認情況下,該語言的語法也強調了這一點。如果確實要使用 float 類型,則需要使用以數字結尾的 f 顯式指定它。 順便說一句,浮點數和雙精度數可以以指數形式編寫。 如果您在“正常”表示中使用足夠大的數字,Java將立即以指數形式顯示它們。讓我們舉個例子:這個程序工作的結果在這里:
特殊浮點數和雙精度數示例
Java語言中有三個特殊的浮點數,用于指示溢出和錯誤。它們分別是:
正無窮大是將正數除以 0 的結果。由常量表示Double.POSITIVE_INFINITY和Float.POSITIVE_INFINITY.
負無窮大是將負數除以 0 的結果。由Double.NEGATIVE_INFINITY和Float.NEGATIVE_INFINITY常數。
NaN(不是數字)表示 0/0 的計算或取負數的平方根。由常量表示雙鈉和浮子楠.
下面是使用這些特殊浮點數的示例:結果是:
雙精度是否足夠?
事實上,盡管精度為雙精度雙type,例如,在財務計算中使用浮點數不是最好的主意,因為舍入錯誤是不可接受的。因此,請嘗試在屏幕上顯示以下程序的輸出。 您將獲得以下結果:
假設結果將為 0.9 是合乎邏輯的。但是,此類錯誤非常常見,并且與數字的內部二進制表示有關。例如,我們不能將1/3的確切值表示為小數;當然,在二進制系統中也有類似的限制。如果任務需要消除舍入錯誤,Java 具有大十進制類為此。