如何缓解 Kotlin 中的溢出

how to mitigate overflow in Kotlin

如题所示,我在Kotlin写操作函数的时候遇到了溢出。 这是一个例子:

fun main(args: Array<String>) {
    val x: Double = 2.2
    val y: Double = 1.0

    val z = x - y

    println("$x - $y is  $z")
}

输出将是

2.2 - 1.0 is  1.2000000000000002

而不是

2.2 - 1.0 is  1.2

我正在编写的函数需要双数据类型变量,但我一直遇到这些溢出问题。我该如何缓解这个问题?

您可以使用 DecimalFormat

import java.text.DecimalFormat

fun main(args: Array<String>) {
    val x: Double = 2.2
    val y: Double = 1.0

    val df = DecimalFormat("#.#")
    val z = df.format((x - y)).toDouble()

    println("$x - $y is  $z")
}