做爲一名java學習者,怎能不懂這些java基礎中的基礎呢?本文就帶各位溫顧溫顧java浮點型、單精度浮點數、雙精度浮點數。javascript
首先明確java中浮點型數據類型主要有:單精度
float
、雙精度double
html<p> </p>java
至於浮點型就是跟
int
,string
類型差很少。都是數據類型。學習
浮點型浮點型別給我整些花裏胡哨的定義,<font color=red>浮點型簡單來講就是表示帶有小數的數據</font>,而偏偏小數點能夠在相應的二進制的不一樣位置浮動,多是這樣就被定義成浮點型了。~不得不佩服這文化程度,定義個數據名稱都這麼有深度~測試
浮點型常量 Java的實常數有兩種表示形式:code
一、 十進制數形式:由數字和小數點組成,且必須有小數點,如
0.123
,123.0
htm
二、科學計數法形式:如:
123e3
或123E3
,其中e
或E
以前必須有數字,且e或E後面的指數必須爲整數(固然也包括負整數)。blog
瞭解浮點型常量 Java的實常數有兩種表示形式以後,頗有必要給各位科普科普下科學計數法中E
的面貌了~圖片
E
是指數的意思,E
表明的英文是exponent
,E
表示10的多少次方的意思。ip<p> </p>
好比
7.823E5 = 782300
這裏E5
表示10的5次方,再好比54.3E-2 = 0.543
這裏E-2
表示10的-2次方
再補充一點(針對負次方理解)
<font color=red>一個數的負幾回方就是這個數的幾回方的倒數</font>。
<p> </p>
好比: 2的負1次方=2的1次方分之一=
1/2
<p> </p>
好比: 3的負2次方=3的2次方分之一=
1/9
單精度浮點數在機內佔
4
個字節、有效數字8
位、表示範圍:-3.40E+38 ~ +3.40E+38
在Java語言當中,全部的浮點型字面值 ~【V8提示】浮點型簡單來講就是表示帶有小數的數據~ 默認當作double
類型來處理,要想該字面值當作float
類型來處理,須要在字面值後面添加F/f
,或者強制裝換爲float
。具體以下代碼:
public static void main(String[] args) { //3.10是浮點型,浮點型字面值默認當作double類型來處理,直接編譯經過; double d=3.10; //3.10是浮點型,則必須加 F或者f,若沒加,直接編譯不經過,會報錯「損失精度」 float f=3.10; //編譯出錯會報錯「損失精度」 // 解決辦法: // 第一種方式:強制類型轉換 float f1=(float)5.1; // 第二種方式:沒有類型轉換; folat f2=5.1f; }
再來看看下面的測試,結果確定十之八九會在乎料以外,哈哈~
public static void main(String[] args) { float a = 12345678.90123456789f; double b=0.12345678901234567890; float c=0.12345678901234567890f; System.out.println(a); System.out.println(b); System.out.println(c); 打印結果 a = 1.2345679E7 b = 0.12345678901234568 c = 0.12345679 }
雙精度浮點數在機內佔
8
個字節、有效數字16
位、表示範圍:-1.79E+308 ~ +1.79E+308
double
的精度過低,不適合用於作財務軟件,財務涉及到錢的問題,要求精度較高,因此在java中有一個基礎的類庫名爲:java.math.BigDecimal
,但這個BigDecimal
<font color=red>類型是引用類型不是基礎類型</font>,切記!!!
在講單精度浮點數(float
)的時候,差很少順道把double
之間的區別講了哈哈,因此最後給張很經典的圖片「敷衍敷衍」下,哈哈哈 ~哎哎哎..別打...別打...別打臉QAQ~ 想深刻了解浮點數在計算機中存儲方式能夠參考這篇文章 浮點數在計算機中存儲方式
最後,歡迎各位關注個人公衆號,一塊兒探討技術,嚮往技術,追求技術,說好了來了就是盆友喔...