【问题标题】:Format number using decimal format in kotlin在kotlin中使用十进制格式格式化数字
【发布时间】:2018-12-19 09:30:39
【问题描述】:

我遇到了一个问题,我需要对一个数字进行一些计算,例如 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

【问题讨论】:

标签: android kotlin decimalformat


【解决方案1】:

这是你需要的格式:

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

将打印:

5.384,45

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

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

【讨论】:

  • 0 将打印为 .00 而不是 0.00。只需使用String.format("%.2f", number)
  • @Choletski 0 将打印为0。问题不在于格式化固定小数位,而是关于将5385,45 之类的数字格式化为5.385,45,即千位分隔符。
  • 如果需要将0打印为0.00,可以使用DecimalFormat("#,##0.00")
  • 如果以 kotlin-js 为目标,DecimalFormat 是否有效?
  • @Hakanai 我只在 Android 应用开发中使用 Kotlin,所以无法回答您的问题。
【解决方案2】:
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

【讨论】:

    【解决方案3】:

    使用:

    %.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))
    }
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        "%,.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 是一种选择。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-08-22
          • 1970-01-01
          • 1970-01-01
          • 2021-10-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多