DecimalFormat 精度无法正常工作
DecimalFormat precision not working correctly
我想使用 DecimalFormat 将浮点数格式化为给定的精度。我有的是这个
val formatter = DecimalFormat(if (precision > 0) "#0.${"0".repeat(precision)}" else "#")
假设精度为 2,当我这样做时
formatter.format(20.0f).toFloat()
我得到的输出是 20.0f
而不是 20.00f
您正在将 String
转换回 Float
,从而丢失 String
的格式。
相反,只打印 format
:
的输出
println(formatter.format(20.0f))
如果您想要额外的 'f',请将其放入您的模式中:
val pattern = if (precision > 0) {
"#0.${"0".repeat(precision)}f"
} else {
"#f"
}
我想使用 DecimalFormat 将浮点数格式化为给定的精度。我有的是这个
val formatter = DecimalFormat(if (precision > 0) "#0.${"0".repeat(precision)}" else "#")
假设精度为 2,当我这样做时
formatter.format(20.0f).toFloat()
我得到的输出是 20.0f
而不是 20.00f
您正在将 String
转换回 Float
,从而丢失 String
的格式。
相反,只打印 format
:
println(formatter.format(20.0f))
如果您想要额外的 'f',请将其放入您的模式中:
val pattern = if (precision > 0) {
"#0.${"0".repeat(precision)}f"
} else {
"#f"
}