格式化數字
下表是可在format函式中用於格式化數字的字元。
字元 說明0
數字佔位符。顯示乙個數字或0。如果表示式在格式字串中出現0的位置上有數字,則顯示該數字;否則在該位置顯示0。
如果數字的位數少於格式表示式中 0 的個數(小數點任一側),則顯示前導零或尾隨零。如果數字的小數點分隔符右側的位數多於格式表示式中小數點分隔符右側零的個數,則將數字捨入到與零的個數相同的小數字置。如果數字的小數點分隔符左側的位數多於格式表示式中小數點分隔符左側零的個數,則不做任何修改地顯示額外的數字。
下面是一些例子,每行**之後的注釋是格式化後的結果。
format(12,"000")'012
format(12,"0")'12
format(12,"0.00")'12.00
format(12,"00.00")'12.00
format(0.5,"0")'1
format(0.5,"0.0")'0.5
format(10.56,"0.0")'10.6
format(10.56,"00.00")'10.56
#
數字佔位符。顯示乙個數字或不顯示任何數字。如果表示式在格式字串中出現#字元的位置上有數字,則顯示該數字;否則該位置不顯示任何數字。
該符號與0數字佔位符的作用相似,不同的是當數字的位數少於格式表示式中小數點分隔符任一側#字元的個數時,不顯示前導零和尾隨零。
通過下面的**,可以看出0和#作為格式字元的差別:
format(10.56,"##.###")'10.56
format(10.56,"00.000")'10.560
format(12,"###")'12
format(12,"000")'012
.
小數點佔位符。小數點佔位符確定小數點分隔符兩側顯示的數字個數。如果格式表示式中該符號的左側只包含#字元,則小於 1 的數字將以小數點分隔符開頭。若要顯示與小數一起顯示的前導零,請將零用作小數點分隔符左側的第乙個數字佔位符。
例如:
format(0.56,"#.##")'.56
format(0.56,"0.00")'0.56
%
百分比佔位符。用100乘以表示式。在格式字串中出現百分比佔位符的位置插入百分比字元 (%)。
例如: format(0.56,"00.0%")
'56.0%
,
千位分隔符。在小數點分隔符左側有四個或更多位數的數字中,千位分隔符將千位與百位分隔開。
例如:
format(12345,"#,###")'12,345
format(123,"#,###")'123
format(12345.67,"#,###.00")'12,345.67
e-
e+e-
e+
科學格式。如果格式表示式在e-、e+、e-或e+的左側至少包含乙個數字佔位符(0或#),則數字將以科學格式顯示,並在數字與其指數之間插入
e
或e
。左側數字佔位符的個數確定指數中數字的個數。使用e-或e-在負指數旁邊放置減號。使用e+或e+在負指數旁邊放置減號,在正指數旁邊放置加號。還必須在該符號的右側包含數字佔位符,才能獲得正確的格式設定。
例如:
format(12345,"0.00e+00")'1.23e+04
format(12345,"0.0000e+00")'1.2345e+04
-+$
(
)原義字元。這些字元顯示後的外觀與在格式字串中鍵入時的外觀完全一樣。若要顯示列出的這些字元之外的某個字元,請在字元前加反斜槓 (\) 或將字元括在雙引號 (" ") 中。
例如:
output.show(format(1.23,"#0.00"))'1.23
output.show(format(1.23,"\#0.00"))'#1.23
output.show(format(1.23,"""value is""
0.00"))
'value is 1.23
\
顯示格式字串中的下乙個字元。若要將具有特殊意義的字元顯示為原義字元,請在其前面加反斜槓 (\)。反斜槓本身不顯示。使用反斜槓的效果與將下乙個字元括在雙引號中相同。若要顯示反斜槓,請使用兩個反斜槓 (\\)。
不能顯示為原義字元的字元示例包括:日期格式字元和時間格式字元(a、c、d、h、m、n、p、q、s、t、w、y、/和:);數字格式字元(#、0、%、e、e、逗號和句點)以及字串格式字元(@、&、<、>和!)。
"abc"
顯示雙引號 (" ") 內的字串。若要在**內將字串包含在 expression 引數中,必須使用chr(34)來包含文字(34是引號 (") 的字元**)。
下表是預定義數字格式的名稱,可以直接在format函式中作為格式表示式使用。
格式名
說明 g 或 g
顯示不帶千位分隔符的數字。
c 或 c
顯示帶千位分隔符的數字;小數點分隔符右側顯示兩個數字;數字前會自動加上貨幣符號。
例如:
format(12345.67,"c")
'¥12,345.67
f 或 f
小數點分隔符左側至少顯示乙個數字,右側至少顯示兩個數字。
例如:
format(0.6,"f")
'0.60
n 或 n
顯示帶千位分隔符的數字,其中小數點分隔符左側至少有乙個數字,右側至少有兩個數字。
例如:
format(12345.6,"n")
'12,345.60
percent
將數字乘以 100 後顯示,並在右側追加百分號 (%);小數點分隔符右側總是顯示兩個數字。
format(0.6788,"percent")
'67.88%
p 或 p
將數字乘以 100 後帶千分位分隔符顯示,並在右側追加百分號 (%);小數點分隔符右側總是顯示兩個數字。
例如:
format(10.6788,"p")
'1,067.88%
scientific
使用標準的科學表示法,提供兩個有效位。
例如:
format(12345678,"scientific")
'1.23e+07
e 或 e
使用標準的科學表示法,提供六個有效位。
format(12345678,"e")
'1.234568e+007
d 或 d
將數字顯示為包含十進位制(以 10 為基準)格式的數值的字串。該選項僅支援整型(byte、short、integer、long)。
x 或 x
將數字顯示為包含十六進製制(以 16 為底)格式的數值的字串。該選項僅支援整型(byte、short、integer、long)。
例如:
format(12345678,"x")
'bc614e
數字格式化
double pi 3.1415927 圓周率 取一位整數 system.out.println new decimalformat 0 format pi 3 取一位整數和兩位小數 system.out.println new decimalformat 0.00 format pi 取兩位整數和...
數字格式化
x 3.1415926535 round x,2 out 1 3.14in 2 round x,2 out 2 3.14in 3 當位於中間時候,取整偏向最近的偶數 y 1.5 z 2.5 round y out 3 2in 4 round z out 4 2in 5 round 1.6 out 5...
iOS 數字的格式化(NSNumber格式化)
在開發的過程中,我們會遇到這樣的問題,在金額沒三位中間會加乙個逗號的那種格式。例如 123456變成123,456的情況。數字的格式化的 nsstring numstring nsstring stringwithformat 12345678.89 nsnumberformatter format...