给定任何类型的值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())