【发布时间】:2012-10-28 15:38:22
【问题描述】:
我有一系列 BigDecimal 数字(例如:123456.78)。我想添加逗号,使它们看起来像这样,123,456.78,所以我将它们转换为字符串并使用以下代码:
private static String insertCommas(String str) {
if(str.length() < 4){
return str;
}
return insertCommas(str.substring(0, str.length() - 3)) +
"," +
str.substring(str.length() - 3, str.length());
}
这样做。问题是当我运行insertCommas(str) 时,它会打印123,456,.78。我想不出一种方法来防止逗号放在小数点之前。
--
还有一件事,它必须适用于大小数字,这就是为什么我使用上面的代码而不是更简单的代码。
我也尝试过DecimalFormat("#,##0.00") 和类似类型,但是当数字达到某个点时,它们会被零替换,这让我失去了有关数字的信息。
帮助?
【问题讨论】:
-
如果这是作业或面试问题,那很好,但请说明。
-
NumberFormatter 可以满足您的要求。 docs.oracle.com/javase/1.4.2/docs/api/javax/swing/text/…