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

时间:2013-03-07 18:20:45

标签: java string string-formatting

double value = 345.12345;

字符串格式1

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

字符串格式2

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

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

2 个答案:

答案 0 :(得分:5)

0前缀表示法仅适用于整数部分,而不适用于小数部分。如果你说的是%07.2f,它会将值显示为0345.12。

答案 1 :(得分:3)

syntax for a format specifier

%[argument_index$][flags][width][.precision]conversion

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

但是,如果你写了%02f,那么flags将是0(“零填充输出到宽度”),而width将是{{1} }}。然后输出将零填充到指定的宽度。