A Java programozásban a számokkal végzett munka egyik kulcsfontosságú szempontja az egész számok (amelyekben a tizedeselválasztó után nincs számjegy) és a lebegőpontos számok (amelyekben a tizedeselválasztó után nulla vagy több számjegy áll) közötti különbségtétel.
A Java-ban az int és a double mellett más adattípusok is vannak:
// 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;
Az egész és a lebegőpontos számok egyaránt használhatják a _ karaktert számjegytagolóként, ami segíthet a nagy számok leírásakor:
int largeInt = 1_000_000;
// => 1000000
double largeDouble = 9_876_543.21;
// => 9876543.21
A számtani műveleteket a szokásos aritmetikai operátorokkal (+, -, * stb.) végzed.
A számokat a szokásos összehasonlító operátorokkal (<, >= stb.), valamint az egyenlőségoperátorral (==) és a nem-egyenlőség operátorral (!=) hasonlíthatod össze.
5 * 6
// => 30
1.2 > 0.8
// => true
120 == 100
// => false
2 != 4
// => true
Amikor numerikus típusok között váltasz, kétféle numerikus konverzió létezik:
Mivel az int kevésbé pontos, mint a double, az int double típusba való átalakítása biztonságos, ezért implicit konverzió.
A double int típusba való átalakítása viszont adatvesztéssel járhat, ezért explicit konverziót igényel.
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;