例如: - 双ab = 1234567.00;
预期的输出应该是, AB = 12,34,567;
但是以下格式给出了默认的三位数分组。
DecimalFormat df_separator = new DecimalFormat("###,###,##0.00");
也试过,
DecimalFormat df_separator = new DecimalFormat("###,##,##0.00");
仍然徒劳无功.......
答案 0 :(得分:2)
你先生,
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")));
答案 1 :(得分:1)
double ab=1234567.00;
String str = new DecimalFormat("#,##,##,###.00").format(ab);
Log.d("TAG", str);
试试这个。