我如何使用字符串。格式(格式,args)格式双像下面?
2354548.235 -> 2,354,548.23
我如何使用字符串。格式(格式,args)格式双像下面?
2354548.235 -> 2,354,548.23
当前回答
如果你想用手动设置的符号格式化它,使用这个:
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());
这个例子的输出显示了相同数字的格式如何随着Locale的不同而变化:
345 987,246 fr_FR
345.987,246 de_DE
345,987.246 en_US
如果你想用手动设置的符号格式化它,使用这个:
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
但是,基于区域设置的格式是首选的。
有很多方法可以做到这一点。这些因素如下:
假设原始数字如下所示: 双位数= 2354548.235;
使用NumberFormat和舍入模式
NumberFormat nf = DecimalFormat.getInstance(Locale.ENGLISH);
DecimalFormat decimalFormatter = (DecimalFormat) nf;
decimalFormatter.applyPattern("#,###,###.##");
decimalFormatter.setRoundingMode(RoundingMode.CEILING);
String fString = decimalFormatter.format(number);
System.out.println(fString);
使用字符串格式化器
System.out.println(String.format("%1$,.2f", number));
在所有情况下,输出将是: 2354548.24
注意:
在舍入期间,您可以在格式化器中添加RoundingMode。以下是一些舍入模式:
decimalFormat.setRoundingMode(RoundingMode.CEILING);
decimalFormat.setRoundingMode(RoundingMode.FLOOR);
decimalFormat.setRoundingMode(RoundingMode.HALF_DOWN);
decimalFormat.setRoundingMode(RoundingMode.HALF_UP);
decimalFormat.setRoundingMode(RoundingMode.UP);
以下是导入:
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
String.format("%4.3f" , x) ;
这意味着我们在ans中需要总共4位数字,其中3位应该在decimal之后。 f是double的格式说明符。X表示我们要求的变量。 为我工作过……
String.format("%1$,.2f", myDouble);
字符串。Format自动使用默认区域设置。