Avatar
0
Mai Văn Thắng Beginner
phép cộng trong Kotlin
fun main() {
  val c = 0.2 + 0.2.2
  val d = 3.5 + 4.3 + 5.1

  println(d) // trả về 12.8999999999999
  println(c) // trả về 0.42000000000004
}
Kết quả này đúng hay sai ạ?
  • Answer
kotlin floating point
Remain: 5
1 Answer
Avatar
monkey Enlightened
monkey Enlightened
IEEE 754
nên nó sẽ không thể nào đảm bảo chính xác từng dấu phẩy động được. Muốn chính xác dấu phẩy động em phải dùng BigDecimal, ví dụ:
fun main() {
    val c = BigDecimal("0.2") + BigDecimal("0.22")
    val d = BigDecimal("3.5") + BigDecimal("4.3") + BigDecimal("5.1")

    println(d) // trả về 12.9
    println(c) // trả về 0.42
}
  • 0
  • Reply
em cảm ơn anh đã giúp em , mấy hôm nay em nghĩ mãi không thông 😂
 –  Mai Văn Thắng 1659669788000