Scala的运算符
- & 按位与运算符
- |按位或运算符
- ^按位异运算符
- ~按位取反运算符
- << 左移运算符,右边补零,放大
- ">>"右移运算符,左边补零,放大
object zzz {
def main(args: Array[String]): Unit={
var a =5;
var b =4
println("5 & 4 =" + (5&4) )
println("5 | 4 =" + (5|4) )
println("5 ^ 4 =" + (5^4) )
println("4 >> 2 =" + (4>>2) )
println("4 << 2 =" + (4<<2) )
}
}
Scala中的优先级
基本规则
- 乘除>加减
- 算数>关系>赋值
- && > ||
object zzz {
def main(args: Array[String]): Unit={
var a =true
var b =false
var c = false
println(a || b && c)
println(a || (b && c))
println((a || b) && c)
}
}
用BigDecimal处理浮点数的精度问题
object zzz {
def main(args: Array[String]): Unit={
var a =0.1
var b =0.2
var c =0.3
println(a + b == c)
println(BigDecimal(a) + BigDecimal(b) == BigDecimal(c))
}
}
大数问题
object zzz {
def main(args: Array[String]): Unit={
var a = 2147483647
var b = 1
println(a+b)
var a1 = BigInt("123456789012345678901234567890")
var b1 = BigInt("987654321098765432109876543210")
println(a1 + b1)
println(a1 * b1)
}
}