1.float、Float、double和Double
%f,%e(%E),%g(%G)和%a(%A)格式符可格式化float、Float、double和Double,其中:
%f將值格式化為十進制浮點數(shù),小數(shù)保留6位。
%e(%E)將值格式化為科學(xué)記數(shù)法的十進制的浮點數(shù),%E在格式化時將其中的指數(shù)符號大寫。
例如:
String S = String.format("%f,%e",1234.56,1234.56);
那么,字符串s就是"1234.560000,1.23456e+03"。
2.修飾符
1)加號修飾符“+”
格式化正數(shù)時,強制添加上正號,例如:%+f將123.45格式化為"+123.45",%+E將123.45格式化為"+1.2345E+2"。
2)逗號修飾符“,”
格式化浮點數(shù)時,將整數(shù)部分按“千”分組,例如:
String s = String.format("整數(shù)部分按千分組:%+,f",123456789.987);
那么,字符串s就是"整數(shù)部分按千分組:+123,456,789.987000"。
3.限制小數(shù)位數(shù)與數(shù)據(jù)的“寬度”
“%.nf”可以限制小數(shù)的位數(shù),其中的n是保留的小數(shù)位數(shù),例如:%.3f將3.1415926格式化為"3.142"(保留3位小數(shù))。
規(guī)定數(shù)據(jù)寬度的一般格式為"%md",其效果是在數(shù)字的左面增加空格;若為"%-md",其效果是在數(shù)字的右面增加空格。
例如,將數(shù)字12.34格式化為寬度為10的字符串:
String s = String.format("%10f",12.34);
那么,字符串s就是" 12.340000",其長度(s.length())為10,即s在12.340000左面添加了1個空格字符,對于:
String s = String.format("%-10f",12.34);
那么,字符串s就是"12.340000 ",其長度(s.length())為10,即s在12.340000右面添加了1個空格字符。
在指定寬度的同時也可以限制小數(shù)位數(shù)(%m.nf),對于:
String s = String.format("%10.2f",12.34);
那么,字符串s就是" 12.34",其長度(s.length())為10,即s在12.34左面添加了5個空格字符。
我們也可以在寬度的前面增加前綴0,表示用數(shù)字0,不用空格來填充寬度左面的富余部分,例如:
String s = String.format("%010f",12.34);
那么,字符串s就是"012.340000",其長度(s.length())為10,即s在12.340000的左面添加了1個數(shù)字0。
注意:如果實際數(shù)字的寬度大于格式中指定的寬度,就按數(shù)字的實際寬度進行格式化。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導(dǎo)課程