強大的C#字串處理上提供非常實用的功能,如果要限制數值類型(int, double, etc.)轉成字串時有特定的格式,在使用String.Format()
給特定的pattern可以省下大量的程式判斷。例如小數位數、逗號、補0、固定長度、正負不同輸出…等。
自訂數值格式
如果C#提供的標準數值格式不符合需求時,可以考慮自訂格式,讓我們看看下面說明:
- 0 表示零值預留位置
- # 表示數字預留位置
- . 表示小數點
- , 表示群組分隔符號和數值範圍,並1000為一次分隔
- % 表示百分比預留位置
- ‰ 表示千分之一符號預留位置
- E0 表示指數標記法
- \ 表示跳脫字元
- ‘string‘ 表示字串區段,可避免特定字元被格式化
- ; 表示區段分隔符號,用於判斷>0; <0; =0給予不同格式[必學]
基本格式(0#)
1234.5678 ("00000") //01235
1234.5678 ("#####") //1235
0.45678 ("0.00") //0.46
0.45678 ("#.##") //.46
縮放範例(,)
表示群組分隔符號和數值範圍,並1000為一次分隔
2147483647 ("#,#") //2,147,483,647
2147483647 ("#,#,,M") //2,147M
百分比(%)與千分比(‰)
*使用字串區段’%
‘表示僅輸出%符號
0.3697 ("#0.00%") //36.97%
0.3697 ("#0.00'%'") //0.37%
0.03697 ("#0.00‰") //36.97‰
0.03697 ("#0.00'‰'") //0.37‰
指數標記法(e)
987654 ("#0.0e0") //98.8e4
1503.92311 ("0.0##e+00") //1.504e+03
1.8901385E-16 ("0.0e+00") //1.9e-16
跳脫字元(\)與字串區段(‘your string’)
可避免特定字元被格式化
987654 ("\###00\#") //#987654#
68 ("# 'degrees'") //68 degrees
區段分隔符號(;)
此功能為自訂格式時必學,用於判斷>0; <0; =0給予不同格式,舉例:
兩區段(“patternA;patternB”),A>=0、B<0。
三區段(“patternA;patternB”;patternC),A>0、B<0、C=0。
12.345 ("#0.0#;(#0.0#);-\0-") //12.35
-12.345 ("#0.0#;(#0.0#);-\0-") //(12.35)
0 ("#0.0#;(#0.0#);-\0-") //-0-
負數會比正值多一字元,當需要輸出相同長度字串時
1234 ("0000#;-000#;") //01234
-1234 ("0000#;-000#;") //-1234
0 ("0000#;-000#;") //00000
發佈留言