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;