Java 这两种字符串格式有什么区别?

Java 这两种字符串格式有什么区别?,java,string,string-formatting,Java,String,String Formatting,价值观 字符串格式1 double value = 345.12345; 字符串格式2 String str = String.format("%.02f", value); 两者都打印相同的值345.12。那么,这两者之间有什么区别呢?0前缀表示法只适用于整数部分,而不适用于小数部分。如果您改为说%07.2f,它将显示值为0345.12。 请注意,在第一种情况下,precision是02,在第二种情况下是2,但由于它们是相同的数字,因此输出是相同的。因此,“%.02f”和“%.2f”是相同

价值观

字符串格式1

double value = 345.12345;
字符串格式2

String str = String.format("%.02f", value);

两者都打印相同的值345.12。那么,这两者之间有什么区别呢?

0前缀表示法只适用于整数部分,而不适用于小数部分。如果您改为说%07.2f,它将显示值为0345.12。

请注意,在第一种情况下,
precision
02
,在第二种情况下是
2
,但由于它们是相同的数字,因此输出是相同的。因此,
“%.02f”
“%.2f”
是相同的


但是,如果您编写了
%02f
,那么
标志将是
0
(“零焊盘输出至宽度”),而
宽度将是
2
。然后输出将被零填充到指定的宽度。

谢谢您的回复+我发了一封信:)
String str = String.format("%.2f", value);
%[argument_index$][flags][width][.precision]conversion