Ein wichtiger Aspekt bei der Arbeit mit Zahlen in Java ist der Unterschied zwischen Ganzzahlen (Zahlen ohne Nachkommastellen) und Gleitkommazahlen (Zahlen mit null oder mehr Nachkommastellen).
Java kennt noch andere Datentypen außer int und 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;
Sowohl Ganzzahlen als auch Gleitkommazahlen können das Zeichen _ als Zifferntrennzeichen verwenden, was beim Definieren großer Zahlen helfen kann:
int largeInt = 1_000_000;
// => 1000000
double largeDouble = 9_876_543.21;
// => 9876543.21
Gerechnet wird mit den üblichen arithmetischen Operatoren (+, -, * usw.).
Zahlen lassen sich mit den üblichen Vergleichsoperatoren (<, >= usw.) sowie dem Gleichheitsoperator (==) und dem Ungleichheitsoperator (!=) vergleichen.
5 * 6
// => 30
1.2 > 0.8
// => true
120 == 100
// => false
2 != 4
// => true
Beim Umwandeln zwischen numerischen Typen gibt es zwei Arten von Umwandlungen:
Da ein int weniger genau als ein double ist, ist die Umwandlung von einem int in einen double sicher und damit eine implizite Umwandlung.
Die Umwandlung von einem double in einen int kann jedoch bedeuten, dass Daten verloren gehen, deshalb ist dafür eine explizite Umwandlung nötig.
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;