您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關java中的浮點型數據類型,文章內容質量較高,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
浮點型
首先明確java中浮點型數據類型主要有:單精度
float
、雙精度double
至于浮點型就是跟
int
,string
類型差不多。都是數據類型。
浮點型(Floating-Point Types):簡單說就是小數類型,小數點可以在相應的二進制的不同位置浮動。也就是人們知道的實數(real),當計算的表達式有精度要求時被使用。例如,計算平方根,或超出人類經驗的計算如正弦和余弦,它們的計算結果的精度要求使用浮點型。Java 實現了標準(IEEE-754 )的浮點型和運算符集。有2種浮點型,單精度浮點型(float )及雙精度(double )浮點型。
浮點型常量 Java的實常數有兩種表示形式:
1、 十進制數形式:由數字和小數點組成,且必須有小數點,如
0.123
,123.0
2、科學計數法形式:如:123e3或123E3,其中e或E之前必須有數字,且e或E后面的指數必須為整數(當然也包括負整數)。
科學計數法中的E
了解浮點型常量 Java的實常數有兩種表示形式之后,很有必要給各位科普科普下科學計數法中E
的面貌了~
E
是指數的意思,E
代表的英文是exponent
,E
表示10的多少次方的意思。比如
7.823E5 = 782300
這里E5
表示10的5次方,再比如54.3E-2 = 0.543
這里E-2
表示10的-2次方
再補充一點(針對負次方理解)
一個數的負幾次方就是這個數的幾次方的倒數。
比如: 2的負1次方=2的1次方分之一=
1/2
比如: 3的負2次方=3的2次方分之一=
1/9
雙精度浮點數(double)
雙精度浮點數在機內占
8
個字節、有效數字16
位、表示范圍:-1.79E+308 ~ +1.79E+308
double
的精度太低,不適合用于做財務軟件,財務涉及到錢的問題,要求精度較高,所以在java中有一個基礎的類庫名為:java.math.BigDecimal
,但這個BigDecimal
類型是引用類型不是基礎類型,切記!!!
在講單精度浮點數(float
)的時候,差不多順道把double
之間的區別講了哈哈,所以最后給張很經典的圖片“敷衍敷衍”下,哈哈哈 ~哎哎哎..別打...別打...別打臉QAQ~
單精度浮點數(float)
單精度浮點數在機內占
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 }
以上就是java中的浮點型數據類型,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎關注億速云行業資訊,感謝各位的閱讀。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。