计算Kotlin的位数

ars*_*v31 10 kotlin

我正在使用简单的string.length方法计算位数:

val number = 829
val length = number.toString().length
Run Code Online (Sandbox Code Playgroud)

我想知道这是否是一种好方法,或者在Kotlin中有更合适的方法.

mar*_*ran 17

您可以使用标准的Java数学库java.lang.Math.该kotlin.math函数将为您提供数字长度减1(有一些例外).此功能适用于双打,因此您必须来回转换.

log10在Kotlin中可以这样写一个函数:

fun Int.length() = when(this) {
    0 -> 1
    else -> log10(abs(toDouble())).toInt() + 1
}
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样调用它:

println(829.length()) // Prints 3
println((-1234).length()) // Prints 4 (it disregards the minus sign)
Run Code Online (Sandbox Code Playgroud)

  • 你可以摆脱`Int.MIN_VALUE`特殊情况,如果你先转换为double然后计算绝对值:`else - > Math.log10(Math.abs(toDouble())).toInt()+ 1` (3认同)