%f,%e(%E),%g(%G)和%a(%A)格式符可格式化float、Float、double和Double,其中:
%f将值格式化为十进制浮点数,小数保留6位。
%e(%E)将值格式化为科学记数法的十进制的浮点数,%E在格式化时将其中的指数符号大写。
例如:
StringS=String.format(%f,%e,1234.56,1234.56);
那么,字符串s就是1234.560000,1.23456e+03。
格式化正数时,强制添加上正号,例如:%+f将123.45格式化为+123.45,%+E将123.45格式化为+1.2345E+2。
格式化浮点数时,将整数部分按“千”分组,例如:
Strings=String.format(整数部分按千分组:%+,f,123456789.987);
那么,字符串s就是整数部分按千分组:+123,456,789.987000。
“%.nf”可以限制小数的位数,其中的n是保留的小数位数,例如:%.3f将3.1415926格式化为3.142(保留3位小数)。
规定数据宽度的一般格式为%md,其效果是在数字的左面增加空格;若为%-md,其效果是在数字的右面增加空格。
例如,将数字12.34格式化为宽度为10的字符串:
Strings=String.format(%10f,12.34);
那么,字符串s就是 12.340000,其长度(s.length())为10,即s在12.340000左面添加了1个空格字符,对于:
Strings=String.format(%-10f,12.34);
那么,字符串s就是12.340000 ,其长度(s.length())为10,即s在12.340000右面添加了1个空格字符。
在指定宽度的同时也可以限制小数位数(%m.nf),对于:
Strings=String.format(%10.2f,12.34);
那么,字符串s就是 12.34,其长度(s.length())为10,即s在12.34左面添加了5个空格字符。
我们也可以在宽度的前面增加前缀0,表示用数字0,不用空格来填充宽度左面的富余部分,例如:
Strings=String.format(%010f,12.34);
那么,字符串s就是012.340000,其长度(s.length())为10,即s在12.340000的左面添加了1个数字0。
注意:如果实际数字的宽度大于格式中指定的宽度,就按数字的实际宽度进行格式化。