例如:- double ab=1234567.00;
预期的输出应该是, ab=12,34,567;
但是下面的格式给出了默认的三位数分组。
DecimalFormat df_separator = new DecimalFormat("###,###,##0.00");
也尝试过,
DecimalFormat df_separator = new DecimalFormat("###,##,##0.00");
仍然是徒劳的......
最佳答案
你来了
NumberFormat numberFormat = NumberFormat.getInstance();
String formattedNr = numberFormat.format(12345678L);
这将为您提供:12,345,678.00
编辑:
public String formatDouble(double number)
{
String result = "";
String numberStr = String.valueOf(number);
char[] charArray = numberStr.toCharArray();
Character[] charObjectArray = ArrayUtils.toObject(charArray);
for (int i=charObjectArray.length()-1; i>=0 i++)
{
if (charObjectArray[i] == ".")
{
result = "." + result;
continue;
}
result = charObjectArray[i] + result;
if (i % 2 == 0) result = "," + result;
}
return result;
}
这是伪代码,因为我没有 JVM atm,但它应该(几乎)可以完成这项工作。
编辑:最后
将以下 jar 添加到您的项目中:http://icu-project.org/apiref/icu4j/com/ibm/icu/text/NumberFormat.html
Format format = com.ibm.icu.text.NumberFormat.getCurrencyInstance(new Locale("en", "in"));
System.out.println(format.format(new BigDecimal("100000000")));
关于java - 在android中用逗号对数字进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20216903/