数值类型简介
在Scala中,所有的数值类型都是对象,包括Byte、Char、Double、Float、Int、Long和Short。这七个数值类型继承自AnyVal trait。它们的取值范围与Java一样:
数据类型 | 描述 | 大小 | 最小值 | 最大值 |
---|---|---|---|---|
Char | 无符号Unicode字符 | 2个字节 | 0 | 65536 |
Byte | 有符号整数 | 1个字节 | -128 | 127 |
Short | 有符号整数 | 2个字节 | -32768 | 32767 |
Int | 有符号整数 | 4个字节 | -2147483648 | 2147483647 |
Long | 有符号整数 | 8个字节 | -9223372036854775808 | 9223372036854775807 |
Float | 有符号单精度浮点数 | 4个字节 | n/a | n/a |
Double | 有符号单精度浮点数 | 8个字节 | n/a | n/a |
除了以上这些类型,还有代表真/假的Boolean类型。Boolean类型可以有true或false值。Unit和Boolean类被认为是“非数值值类型”。
如果想要知道准确的值的范围,可以象下面这样:
// 获取值的范围 println(Byte.MinValue) // -128 println(Byte.MaxValue) // 127 println(Short.MinValue) // -32768 println(Short.MaxValue) // 32767 println(Int.MinValue) // -2147483648 println(Int.MaxValue) // -3.4028235E38 println(Long.MinValue) // -9223372036854775808 println(Long.MaxValue) // 9223372036854775807 println(Float.MinValue) // -3.4028235E38 println(Float.MaxValue) // 3.4028235E38 println(Double.MinValue) // -1.7976931348623157E308 println(Double.MaxValue) // 1.7976931348623157E308 println(Char.MinValue.toInt) // 0 println(Char.MaxValue.toInt) // 65535
还可以用标准数值类型的PositiveInfinity和NegativeInfinity来表示正无穷和负无穷:
Double.PositiveInfinity // Double = Infinity Double.NegativeInfinity // Double = -Infinity 1.7976931348623157E308 > Double.PositiveInfinity // Boolean = false Double.MaxValue > Double.PositiveInfinity // Boolean = false