如何创建Kotlin十进制格式化程序



我想创建一个十进制格式化程序,它最多可以显示2位十进制数字,并带有给定的分隔符。

例如,使用分离器","

input -> output
3.0   -> "3"
3.1   -> "3,1"
3.14  -> "3,14"
3.141 -> "3,14"
3.149 -> "3,15"

我想在科特林做这件事,我想我必须使用DecimalFormat,但不知道如何做到。你能帮我吗?

下面的代码针对您的所有示例进行了测试,似乎运行良好:

val locale = Locale("en", "UK")
val symbols = DecimalFormatSymbols(locale)
symbols.decimalSeparator = ','
val pattern = "#.##"
val decimalFormat = DecimalFormat(pattern, symbols)
val format = decimalFormat.format(3.14)
println(format)  //3,14

要在DecimalFormat中设置特定的分隔符,可以使用setDecimalSeparator。

注意模式,因为#的意思是:

一个数字,前导零被省略

您显然可以根据自己的喜好更改区域设置。

点击此处了解更多信息。

您确实可以使用java.text.NumberFormat来实现您的目标。下面的代码应该与您的示例Swift代码非常接近。

// you can change the separators by providing a Locale
val nf = java.text.NumberFormat
.getInstance(java.util.Locale.GERMAN)
nf.minimumFractionDigits = 0
nf.maximumFractionDigits = 2

// you may want to change the rounding mode
nf.roundingMode = java.math.RoundingMode.DOWN

println(nf.format(0)) // 0
println(nf.format(1)) // 1
println(nf.format(1.2)) // 1,2
println(nf.format(1.23)) // 1,23
println(nf.format(1.234)) // 1,23
println(nf.format(12.345)) // 12,34

相关内容

  • 没有找到相关文章

最新更新