Java千問:Java語言各種數字的“非常規”寫法你都會嗎?

Java程序中總是會出現一些數字。我們通常都是用常規的方式來表示這些數字,如以下代碼所示

int a = 1;
double b = 1.5;

但是數字也可以有非常規寫法,在這裏我們用一篇短文簡單總結一下

整數的非十進制寫法
首先強調一下,這裏所說的整數並不是單指int類型,而是包含了int、byte、short和long這4種整數類型。在Java語言中,除了可以用十進制的形式表示整數以外,還可以用二進制、八進制和十六進制的方式表示整數。如果用十六進制的形式表示一個整數,數字要以0X開頭,如果用八進制表示,則用0開頭,而用二進制表示,用0B開頭,如以下代碼所示

byte n1 = 0B1011;//二進制表示法,換算等於十進制的11
int n2 = 072;//八進制表示法,換算等於十進制的58
long n3 = 0XFF5C;//十六進制表示法,換算等於十進制的65372

以上代碼中就是數字的非十進制表示法以及對應的換算結果。需要注意的是,我們在一開始就強調了這幾種表示法都是針對整數而言的,所以說,這幾種表示數字的寫法中,不能出現小數點,否則會出現語法錯誤!

浮點數的科學計數法
Java語言爲了能夠讓浮點數表示出更大範圍的數字,除了允許我們使用常規寫法以外,還可以讓我們用科學計數法的形式表示浮點數。我們來看一個例子

float n4 = 2.3E3F;//換算等於2.31000

使用科學計數法表示浮點數,需要用一個字母E來把係數和指數隔開。具體來說就是:字母E的前面是一個浮點數,後面是一個整數。E之前的浮點數是係數,而E之後的整數就表示10的多少次方,這個整數可以是負數。上面代碼中,數字2.3E3F其實就是2.3乘以10的3次方。在數字的最後又出現了一個字母F,是因爲浮點數常量默認都是double類型,把double類型的數據賦值給float類型的變量,要在末尾加字母F進行數據類型轉換。
另外,必須強調一點就是:科學計數法只能用來表示浮點數,如果我們把一個用科學計數法表示的數字賦值給整型變量就會出現語法錯誤。即便字母E前面的係數不帶小數點也不行!

數字中帶有下劃線

int n5 = 1000000000;

如果你看到上面的數字,我想你肯定會數一下這個數字中有多少個0。我們知道,在財會行業,爲了降低讀錯數字的概率,人們經常會在數字中加入逗號,比如會把100000寫成100,100。從JDK1.7開始,Java語言也借鑑了這種寫法,但做了一點點改變,把數字之間的分隔符用逗號改成了下劃線,比如說,我們可以把剛纔代碼中那個很長的數字寫成
int n5 = 1_000_000_000;
對於這種加下劃線的寫法,需要強調幾個注意事項
1、這種寫法是從JDK1.7纔開始引入的,早期版本的JDK並不支持這種寫法
2、下劃線出現的位置隨意,並非一定要每3位數字才能出現一個下劃線
3、無論浮點數還是整數,數字當中都可以出現下劃線
以上我們用一篇短文總結了Java語言中各種數字的非常規寫法,覺得不錯就點個贊吧!

如想系統學習Java編程,可以點擊這裏觀看我在本站的視頻課程,有問題也可以加入我的QQ羣291839907一起討論!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章