Java 小数格式删除点后的零

Java 小数格式删除点后的零,java,android,Java,Android,我想格式化用户的输入,这没关系,但当我尝试在dotDecimalFormat后输入零时,它会被删除。 我使用以下代码: DecimalFormat df = new DecimalFormat("#,###.##"); Number n = df.parse(v); amountEdit.setText(df.format(n)); 输入/输出示例: 9.0->9 9.9->9.9 9.90->9.9 它删除零 编辑: 我用TextChangedListener 其思想是将用户输入的格

我想格式化用户的输入,这没关系,但当我尝试在dot
DecimalFormat
后输入零时,它会被删除。 我使用以下代码:

 DecimalFormat df = new DecimalFormat("#,###.##");
 Number n = df.parse(v);
 amountEdit.setText(df.format(n)); 
输入/输出示例:

9.0->9

9.9->9.9

9.90->9.9

它删除零

编辑:

我用
TextChangedListener
其思想是将用户输入的格式设置为
999.99
(这是最大值)

它删除零

好吧,是的,它会-你特别使用了
。##
,意思是“只包括数字,如果它们是重要的”。如果希望始终至少有一个小数位,请使用

DecimalFormat df = new DecimalFormat("#,###.0#");
如果始终希望有两位小数,请使用:

DecimalFormat df = new DecimalFormat("#,###.00");
<>你应该考虑一下你希望0.5的格式。您想要“0.5”还是“.5”?

“#”表示包含此数字(如果有关系),并且由于
9,0==9
,格式将删除它

如果小数点后至少需要两位数字,则应替换为以下格式:

DecimalFormat df = new DecimalFormat("#,###.00");

当然,我要0.5分too@ManOfWar:在这种情况下,您可能需要“#,##0.00”。基本上,您需要更仔细地阅读
DecimalFormat
文档。当我放置“.”时,我的编辑文本将填充00,如5.00,并且我无法添加其他数字。当然,我要去读书it@ManOfWar:在这种情况下,听起来你的整体方法(你没有完全描述或展示)是有缺陷的。我们所能看到的只是你的输入和现有的输出,我在这里已经解释过了。@ManOfWar:这是一个问题,不是一个答案——但从根本上说,你需要重新思考你的方法。不要让我费力地阅读100行代码,而是问问自己,在每种情况下,你希望得到的结果是什么,以及你是否认为用一种格式是可行的……你的示例输入不包含点,而是分号?编辑了我的答案@CagriYalcin
DecimalFormat df = new DecimalFormat("#,###.00");
DecimalFormat df = new DecimalFormat("#,###.00");