【发布时间】:2021-04-21 12:28:36
【问题描述】:
我目前的格式是这样的
DecimalFormat("#,##0.00").format(value)
我需要处理这样的值
0.00 //ok
0.45 //ok
0.002 //Need to show 0.002 or 0.0020
0.0003 //Need to show 0.0003 or 0.00030
0.00004 //Need to show 0.00004 or 0.000040
0.00234567 //Need to show 0.0023
但可以肯定,上面的代码不适用于小数部分,其中非零值从千位开始,否则我将最终显示0.00,就好像它完全是零值一样。在处理整数时,我仍然希望使用逗号进行上述格式化,但也允许我在非零开始超过百分之一时进行格式化。
更多示例
0.0492 // 0.04 or 0.05 much better
700.356 // 700.35 or 700.36 much better
54232.542234 // 54,232.54
【问题讨论】:
-
格式化背后的逻辑是什么?是否要将数字四舍五入到前两位非零小数?
-
其实我也有同样的问题。为什么您的精度要求会根据值而变化?我无法理解您的用例,因为您可以忽略上一个示例
0.00234567->0.0023中的数字4,但在您的另一个示例0.00004中它似乎足够重要。是什么让 前面的 0 在这里如此特别? -
@Joffrey 我不确定有什么令人困惑的地方,或者您可能认为这是一种不好的做法。我不想显示这么长时间的
0.00023232323345345345。我只想要前两个非零。它不是关于前面的零,对吗? -
但也可以使用
18888.8888为18,888.88或0.0543为0.054就这么简单 -
@UrbanR 舍入不是必需的,但也欢迎
标签: kotlin formatting double decimal decimalformat