细节

33 阅读1分钟

精度问题

0.1+0.2==0.3?

val a= 0.1
val b= 0.2
val c= 0.3
println(a + b == c)
println(1 + 2 == 3)
println(0.1 + 0.2 == 0.3 )
println(BigDecimal(0.1) + BigDecimal(0.2)== BigDecimal(0.3))
println(0.1 + 0.1 == 0.2)

image.png

计算平均数

val a=2147483647
val b= 1
val c= a - (a-b)/2

大数字计算

val d= BigInt("111111111111111111111111111")*BigInt("22222222222222222222")
println(d)

image.png