Kotlin 样本延伸很长时间以呈现人类可读的字符串

示例

给定任何类型的值Int或Long呈现人类可读的字符串:

fun Long.humanReadable(): String {
    if (this <= 0) return "0"
    val units = arrayOf("B", "KB", "MB", "GB", "TB", "EB")
    val digitGroups = (Math.log10(this.toDouble())/Math.log10(1024.0)).toInt();
    return DecimalFormat("#,##0.#").format(this/Math.pow(1024.0, digitGroups.toDouble())) + " " + units[digitGroups];
}

fun Int.humanReadable(): String {
    return this.toLong().humanReadable()
}

然后轻松用作:

println(1999549L.humanReadable())
println(someInt.humanReadable())