Kotlin:
Rounding numbers

How to:

In Kotlin, rounding can be done using several functions like roundToInt(), roundToDouble(), and using BigDecimal for more control:

fun main() {
    val number1 = 3.14159
    println(number1.roundToInt()) // Outputs: 3

    val number2 = 3.5
    println(number2.roundToInt()) // Outputs: 4

    val number3 = 123.456
    println("%.2f".format(number3)) // Outputs: 123.46
    
    val bigDecimal = number3.toBigDecimal().setScale(1, RoundingMode.HALF_EVEN)
    println(bigDecimal) // Outputs: 123.5
}

Deep Dive

Historically, rounding numbers has been a fundamental concept in both mathematics and computation, designed to handle numerical precision limitations. In early computing, rounding was critical due to the high cost of memory.

In Kotlin, rounding is built upon the standard Java libraries. Options for rounding include Math.round(), which rounds to the nearest whole number, and BigDecimal for customizable rounding, where you can specify a scale and a RoundingMode.

Each RoundingMode has different policies for handling ties (when the digit is exactly in the middle of the options for rounding). For instance, RoundingMode.HALF_UP rounds to the nearest neighbor, unless both neighbors are equidistant, in which case it rounds up.

See Also