在科特林中使用十进制格式格式化数字

Format number using decimal format in kotlin

我遇到一个问题,我需要用一个数字做一些计算,例如 5000,00 乘以 (1,025^3).

所以在这种情况下 5000,00 * (1,025^3) = 5385,45

所以我的问题是,如何使用十进制格式将数字 5385,45 格式化为类似于 5.385,45

我自己试过,我做了这段代码,在应用程序中输出 5385,45 但不是 5.385,45

    var interestValue = (5000,00*(Math.pow(1.025,yearValue)))
    val number = java.lang.Double.valueOf(interestValue)
    val dec = DecimalFormat("#,00")
    val credits = dec.format(number)
    vValueInterest.text = credits

尝试val dec = DecimalFormat("#.###,00")。有关 DecimalFormat 的示例,请检查此 link.

这是您需要的格式:

val dec = DecimalFormat("#,###.##")

将打印:

5.384,45

如果您总是需要小数点后正好 2 位:

val dec = DecimalFormat("#,###.00") 
val num = 1.34567
val df = DecimalFormat("#.##")
df.roundingMode = RoundingMode.CEILING

println(df.format(num))

当你运行程序时,输出将是: 1.34

检查: https://www.programiz.com/kotlin-programming/examples/round-number-decimal

已用:

%.numberf

fun main(args: Array<String>) {
var A: Double
A = readLine()!!.toDouble()
var bla = A*A
var calculator = 3.14159 * bla
println("A=%.4f".format(calculator))
}

我发现进行这种格式化的“最Kotlin-esque”方式是:

"%,.2f".format(Locale.GERMAN, 1234.5678)      // => "1.234,57"
"%,.2f".format(Locale.ENGLISH, 1234.5678)     // => "1,234.57"

"%,.2f".format(1234.5678)                     // => "1,234.57" for me, in en_AU

请注意,尽管这是 Kotlin 自己在 String 上的扩展方法,但它仍然只适用于 JVM。

对于那些寻求多平台实施的人(就像我一样),mp_stools 是一个选择。