什麼是java浮點數常數

WBOY
發布: 2024-01-13 19:51:31
轉載
1148 人瀏覽過

什麼是java浮點數常數

java浮點數常數是什麼

浮點型資料型態表示實數,包含小數部分。現實世界的資料複雜,需要支援實數的資料型態。

一、浮點型常數 Java的實數常數有兩種表示法:十進制數形式,由數字和小數點組成,且必須有小數點,如0.123, .123, 123. ,123.0 。 2.科學計數法形式。如:123e3或123E3,其中e或E之前必須有數字,且e或E後面的指數必須為整數。實數常數在機器中佔64位,具有double型的值。對於float型的值,則要在數字後面加上f或F,如12.3F,它在機器中佔32位,且表示精度較低。

浮點型變數有兩種:float和double。 float佔32位,取值範圍為3.4e-038~3.4e 038;而double佔64位,取值範圍為1.7e-308~1.7e 308。 double類型比float類型具有更高的精度和更大的表示範圍,通常在科學計算等需要高精度的場景中使用。

在Java中,可以使用float和double來定義浮點型變數。例如: float f; // 指定變數f為float型 double d; // 指定變數d為double型 與C、C 不同,Java沒有無符號整數類型,並且規定了整數和浮點型資料所佔的記憶體位元組數。這種規定確保了Java程式的安全性、穩健性和平台無關性。這意味著不同的Java實作在處理整數和浮點型資料時具有一致的行為,無論運行在哪個平台上,結果都是可預測的。

java浮點數計算問題

位元運算通常在硬體控制中使用,表達式本身無法確定具體意義,需結合實際場景。

&叫做“按位與”,其規則是:0&0=0 1&0=0 0&1=0 1&1=1

“|”叫做“位元或”,運算規則是:0|0=0 1|0=1 0|1=1 1|1=1

0x7fffff用32位元二進位表示就是 0000 0000 0111 1111 1111 1111 1111 1111

根據位元與的運演算法則就是把bits的高9位元清零。

0x800000用32位元二進位表示是 0000 0000 1000 0000 0000 0000 0000 0000

根據位元或的運演算法則就是把第24位置1。

那麼綜合來看,((bits & 0x7fffff)|0x800000)的意思就是先把bits的高9位清零,然後再把第24位置1。

關於前半部分,「

至於問號,就不用解釋了吧?

一個JAVA關於浮點類型的問題

浮點數在做運算後是會出現誤差的,這很正常。

double a=2.00-1.10;

double b=0.90;

System.out.print(a==b);

結果會輸出false

所以有時在判斷浮點數相等時會用到一個方法,那就是

public static boolean isEqual(double a,double b){

final double epsilon=0.00000001;

return Math.abs(a-b)

}

綜上所述,浮點數經過運算後是會出現誤差的,0.7799999713897705就是將float轉換為double導致誤差出現,0.78是float正常運算

#

以上是什麼是java浮點數常數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:docexcel.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!