SCALA-005 Numbers trong Scala

Nội dung bài viết

Trong Scala kiểu số học có thể là Char, Byte, Short, Int, Long, Float, Double, BigInt, BigDecimal.

1. Khai báo biến số học

Bình thường nếu không khai báo gì thêm, kiểu IntFloat được sử dụng mặc định nếu bạn khai báo số nguyên hoặc số thực (có dấu chấm)

val a = 1
val b = 2.0
println("a la mot: " + a.getClass.getName)
println("b la mot: " + b.getClass.getName)
scala> val a = 1
a: Int = 1

scala> val b = 2.0
b: Double = 2.0

scala> println("a la mot: " + a.getClass.getName)
a la mot: int

scala> println("b la mot: " + b.getClass.getName)
b la mot: double

Để khai báo kiểu số học mà bạn mong muốn khi khởi tạo, bạn có thể khai báo như sau:

val a1 : Short = 5
val a2 = 5 : Short
val b1 = 6.0 : Double
val b2 : Double = 6.0

2. Ép kiểu

Để chuyển đổi giữa các kiểu số học, chúng ta có thể sử dụng hàm to[Type] được xây dựng sẳn

val a = 18
println(a.toDouble)
val b = 5.5
println(b.toInt)
val s : String = "125"
println(s.toInt)
scala> val a = 18
a: Int = 18

scala> println(a.toDouble)
18.0

scala> val b = 5.5
b: Double = 5.5

scala> println(b.toInt)
5

scala> val s : String = "125"
s: String = 125

scala> println(s.toInt)
125

3. Thực hiện toán tử

Như nhiều ngôn ngữ khác, Scala cho phép bạn thực hiện các toán tử số học +, -, *, /, %

1 + 2
8 - 9.5
2 * 7.8
15 % 4
7 / 2
7 /  2.0
scala> 1 + 2
res35: Int = 3

scala> 8 - 9.5
res36: Double = -1.5

scala> 2 * 7.8
res37: Double = 15.6

scala> 15 % 4
res38: Int = 3

scala> 7 / 2
res39: Int = 3

scala> 7 /  2.0
res40: Double = 3.5