格式化大十进制

Formatting big decimal

我有一个大的小数,其值为: -6
我需要对其进行格式化以获得: -000000006.00
如果我的大十进制是6,结果将是:0000000006.00

我正在尝试使用 String.format,但无法获得该结果。

String.format("%010d", invoice.getAmount().doubleValue());

如何格式化我的大十进制以获得所需的结果?

勾选 DecimalFormat class:

BigDecimal bg = new BigDecimal(-6);
DecimalFormat df = (bg.signum() < 0) ? new DecimalFormat("000000000.00") : new DecimalFormat("0000000000.00");
System.out.println(df.format(bg));

产量:

-000000006.00
0000000006.00
String result = String.format("%013.2f", invoice.getAmount());

请注意,用于小数点的符号是特定于区域设置的;例如,您可能会得到 , 而不是 .。如果您需要它始终为点 .,则指定小数点为点的语言环境,例如:

String result = String.format(Locale.US, "%013.2f", invoice.getAmount());

如果你想使用String.format(),你可以使用'+'来包含符号:

String.format("%+010d", -6)