@Test
fun whenFormatDecimal_thenReturnFormatted() {
mapOf(
1 to "1",
12 to "12",
123 to "123",
1234 to "1,234",
12345 to "12,345",
123456 to "123,456",
1234567 to "1,234,567",
12345678 to "12,345,678",
123456789 to "123,456,789",
1234567890 to "1,234,567,890",
).forEach { (test, expected) ->
val result = test.formatDecimalSeparator()
assertEquals(expected, result)
}
}
8条答案
按热度按时间fd3cxomn1#
如果您在JVM上,则可以使用
它为输入
11000
提供了11,000
。将,
替换为您需要的任何分隔符。如果要使用预定义的数字格式,例如针对当前区域设置,请用途:
还要确保检查其他格式示例,例如
getCurrencyInstance
或getPercentInstance
。请注意,您也可以将NumberFormat
用于其他区域设置。只需将它们传递给get*Instance
-方法。第二种变体的一些也可以在这里找到:Converting Integer to String with comma for thousands
如果你是通过Javascript使用它,你可能会感兴趣:How do I format numbers using JavaScript?
ttygqcqt2#
基于上面的Splitframe答案,做了一个简化版本(没有
var
):并添加了一些测试:
在我的例子是一个KMM项目,我们不支持其他语言,所以它做的工作。一个更好的解决方案,我会说,创建一个
expect
Util类和每个平台实现考虑到用户区域设置等格式化程序。rjzwgtxy3#
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(35634646));
ndh0cuux4#
这是一个简单的方法,可以用任何字符替换默认分隔符:
falq053o5#
我在一个非JVM的Kotlin环境中使用了这个:
9lowa7mx6#
您也可以在Android String Resources中使用@罗兰answer来格式化它:
x759pob27#
这个可能会有帮助
idfiyjo88#
对于一个没有获取Locale的方法,你可以使用一个扩展来将你的Int转换成一个格式化的String,如下所示: