3 回答
TA贡献1843条经验 获得超7个赞
System.out.println(String.format("%1$,.0f", amount));
或者
String formatAmount = new DecimalFormat("#,###,###,###,###").format(amount);
或 - Java 8
NumberFormat numberFormatter = NumberFormat.getNumberInstance(Locale.ENGLISH);
String formatAmount = numberFormatter.format(amount);
TA贡献1876条经验 获得超5个赞
使用DecimalFormat这个问题。
double amount = 32690597;
//create pattern for decimal format
String pattern = "###,###";
DecimalFormat decimalFormat = new DecimalFormat(pattern);
//change dot with comma
String formattedNumber = decimalFormat.format(amount).replace(".",",");
详细十进制格式键;
0 A digit - always displayed, even if number has less digits (then 0 is displayed)
# A digit, leading zeroes are omitted.
. Marks decimal separator
, Marks grouping separator (e.g. thousand separator)
E Marks separation of mantissa and exponent for exponential formats.
; Separates formats
- Marks the negative number prefix
% Multiplies by 100 and shows number as percentage
? Multiplies by 1000 and shows number as per mille
¤ Currency sign - replaced by the currency sign for the Locale. Also makes formatting use the monetary decimal separator instead of normal decimal separator. ¤¤ makes formatting use international monetary symbols.
X Marks a character to be used in number prefix or suffix
' Marks a quote around special characters in prefix or suffix of formatted number.
一些与此相关的示例;
Pattern Number Formatted String
###.### 123.456 123.456
###.# 123.456 123.5
###,###.## 123456.789 123,456.79
000.### 9.95 009.95
##0.### 0.95 0.95
TA贡献1821条经验 获得超6个赞
static String formatDouble(double input){
String inputString = new String(Double.toString(input));
char[] array= inputString.toCharArray();
StringBuilder str = new StringBuilder("");
for(int i = array.length-1; i >= 0; i--){
str.insert(0, array[i]);
if(i % 3 == 0 && i != 0){
str.insert(0, ",");
}
}
return str.toString();
}
希望这可以帮助
更好地使用 String.format
添加回答
举报