在 Java 中處理數字時,一個關鍵面向就是要區分整數(小數點後沒有位數的數字)與浮點數(小數點後有零或多個位數的數字)。
Java 除了 int 和 double 之外,還有其他資料型態:
// 8-Bit Integer
byte a = 127;
// 16-Bit Integer
short b = 262143;
// 64-Bit Integer
long d = 18446744073709551999L;
// 32-bit Single-Precision Floating-Point
float e = 5409.29f;
整數和浮點數都可以使用 _ 字元做為_數字分隔符號_,這在定義大數字時很有幫助:
int largeInt = 1_000_000;
// => 1000000
double largeDouble = 9_876_543.21;
// => 9876543.21
算術運算使用標準的算術運算子(+、-、* 等等)。
數字可以使用標準的比較運算子(<、>= 等等)來比較,也可以使用等於運算子(==)和不等於運算子(!=)。
5 * 6
// => 30
1.2 > 0.8
// => true
120 == 100
// => false
2 != 4
// => true
在數值型別之間轉換時,有兩種數值轉換:
由於 int 的精確度比 double 低,從 int 轉換成 double 是安全的,因此屬於隱式轉換。
不過,從 double 轉換成 int 可能會遺失資料,所以需要顯式轉換。
int i = 9;
double d = 2.72;
// Safe conversion, thus implicit conversion
double fromInt = i;
// Potentially unsafe conversion, thus explicit conversion
int fromDouble = (int)d;