【问题标题】:How can I format a String number to have commas in Kotlin?如何在 Kotlin 中格式化字符串编号以使用逗号?
【发布时间】:2021-07-25 10:33:57
【问题描述】:

我有这个代码来计算距离 2 点(纬度,经度)

val distance = distanceInKm(3.140853,21.422510,101.693207,39.826168)
val number3digits:Double = String.format("%-10.4f%n%n", distance).toDouble()
distancetomakkah.text = "$number3digits"

但我得到了这个输出:

10891.3684

我希望输出是这样的:

10,891

我尝试将格式更改为: ("%-10.4f%n%n"),("%,d") 和许多其他但我不断收到此错误

f != java.lang.string

我在这里做错了什么?

【问题讨论】:

    标签: java android kotlin format distance


    【解决方案1】:
    String.format("%-10.4f%n%n", distance).toDouble()
    

    您的格式未被应用。在将您的返回值distanceInKm 格式化为String 后,您将调用toDouble,撤消您所做的任何格式化。

    distancetomakkah.text = "$number3digits"
    

    number3digitsDouble,使用字符串插值分配.text 时应用默认格式。

    【讨论】:

      【解决方案2】:

      试试

      String.format("%-,10.4f%n%n", distance);
      

      结果的类型为String 这当然不能移植,因为 , 在某些 Locales 中没有使用

      【讨论】:

      • , 只告诉格式化程序使用分组。它实际用于分隔分组的符号取决于语言环境。您在示例中使用的方法依赖于默认语言环境,但是有一个重载允许您指定语言环境。例如,如果您使用String.format(Locale.GERMANY, "%,-10.4f%n%n", distance),它将使用. 进行分组,使用, 作为小数点。
      • , 只告诉格式化程序使用分组。 谢谢。我认为这意味着从字面上使用该字符
      猜你喜欢
      • 2013-11-16
      • 2020-07-31
      • 1970-01-01
      • 2011-12-04
      • 2021-09-28
      • 2011-09-19
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多