A number type defines the precision and range of numeric values, along with the arithmetic behavior applied to them. Mixed-type operations roughly promote results toward the most precise operand, but exceptions exist. section 5.13
Precision is not merely a size limit: floating-point arithmetic rounds values when finite machine precision cannot represent the exact result. Code that depends on precision should choose its numeric behavior explicitly. section 5.13
Overflowing integer arithmetic
Unchecked operations wrap at the limits of a long. Incrementing 9223372036854775807 produces -9223372036854775808, while decrementing the smallest long produces 9223372036854775807. This behavior can support fixed-width hashing.





