Scala FAQ: What are the Scala numeric data types? How many bits do they use to store their data, and what is the range of those data types?
Courtesy of the excellent book, Programming in Scala, here is a list and description of the Scala data types, including bit sizes and data ranges:
Data Type Definition Boolean true or false Byte 8-bit signed two's complement integer (-2^7 to 2^7-1, inclusive) -128 to 127 Short 16-bit signed two's complement integer (-2^15 to 2^15-1, inclusive) -32,768 to 32,767 Int 32-bit two's complement integer (-2^31 to 2^31-1, inclusive) -2,147,483,648 to 2,147,483,647 Long 64-bit two's complement integer (-2^63 to 2^63-1, inclusive) -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 Float 32-bit IEEE 754 single-precision float 1.40129846432481707e-45 to 3.40282346638528860e+38 (positive or negative) Double 64-bit IEEE 754 double-precision float 4.94065645841246544e-324 to 1.79769313486231570e+308 (positive or negative) Char 16-bit unsigned Unicode character (0 to 2^16-1, inclusive) 0 to 65,535 String a sequence of Chars
(I found the numeric range values on this page.)
Notes about Scala data types
The String
class resides in the package java.lang
, and all these other types are in the package scala
.
You may have noticed that these data types in Scala have the exact same range as the corresponding data types in Java. This makes it easy to convert these Scala types to their corresponding Java primitive types.
Also interesting to note, if you're into specifics: Collectively, Byte
, Short
, Int
, Long
, and Char
are called integral types. The integral types plus Float
and Double
are called numeric types. (That was again courtesy of the book, Programming in Scala.)
Official Scala data type documentation
Here are links to the official Scala docs for these data types:
this post is sponsored by my books: | |||
#1 New Release |
FP Best Seller |
Learn Scala 3 |
Learn FP Fast |