数值类型简介

在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

《PySpark原理深入与编程实战》