String.format()在java中格式化double

我怎样才能使用String.format(格式string,X)格式化一个双像如下???

2354548.235 – > 2,354,548.23

谢谢!

String.format("%1$,.2f", myDouble); 

String.format自动使用默认的语言环境。

 String.format("%4.3f" , x) ; 

这意味着我们需要总共4位数,其中3位应该是十进制数。 而f是double的格式说明符。 x表示我们想要find它的variables。 为我工作。 。 。

如果你想用手动设置的符号格式化,使用这个:

 DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols(); decimalFormatSymbols.setDecimalSeparator('.'); decimalFormatSymbols.setGroupingSeparator(','); DecimalFormat decimalFormat = new DecimalFormat("#,##0.00", decimalFormatSymbols); System.out.println(decimalFormat.format(1237516.2548)); //1,237,516.25 

但是,基于区域的格式是首选。

从这个链接中提取的代码;

 Double amount = new Double(345987.246); NumberFormat numberFormatter; String amountOut; numberFormatter = NumberFormat.getNumberInstance(currentLocale); amountOut = numberFormatter.format(amount); System.out.println(amountOut + " " + currentLocale.toString()); 

此示例的输出显示了相同数字的格式如何随区域设置而变化:

 345 987,246 fr_FR 345.987,246 de_DE 345,987.246 en_US 
 public class MainClass { public static void main(String args[]) { System.out.printf("%d %(d %+d %05d\n", 3, -3, 3, 3); System.out.printf("Default floating-point format: %f\n", 1234567.123); System.out.printf("Floating-point with commas: %,f\n", 1234567.123); System.out.printf("Negative floating-point default: %,f\n", -1234567.123); System.out.printf("Negative floating-point option: %,(f\n", -1234567.123); System.out.printf("Line-up positive and negative values:\n"); System.out.printf("% ,.2f\n% ,.2f\n", 1234567.123, -1234567.123); } } 

并打印出来:

3(3)+3 00003
默认浮点格式:1234567,123000
带逗号的浮点数:1.234.567,123000
负浮点数默认值:-1.234.567,123000
负浮点选项:(1.234.567,123000)

排列正值和负值:
1.234.567,12
-1.234.567,12