C# string.Format
字符串格式化速查表
1. 方法定义
String.Format(string format, object arg0)
String.Format(string format, object[] args)
String.Format(IFormatProvider provider, string format, object[] args)
String.Format(string format, object arg0, object arg1)
String.Format(string format, object arg0, object arg1, object arg2)
用 {index:format} 在字符串中占位,替换为对应参数的文本表示。IFormatProvider 可指定区域性格式(如货币、日期格式等)。
2. 标准数字格式化
格式符 | 名称 | 示例 | 输出 |
---|
C | 货币 | string.Format("{0:C}", 0.2) | ¥0.20(或 $0.20) |
D | 十进制(整数) | string.Format("{0:D3}", 23) | 023 |
E | 科学计数法 | string.Format("{0:E2}", 12.05) | 1.20E+001 |
F | 定点 | string.Format("{0:F2}", 56789) | 56789.00 |
G | 常规 | string.Format("{0:G}", 2) | 2 |
N | 千分位 | string.Format("{0:N}", 250000) | 250,000.00 |
P | 百分比 | string.Format("{0:P1}", 0.24583) | 24.6% |
X | 十六进制 | string.Format("{0:X}", 12) | C |
3. 自定义数字格式符
符号 | 说明 | 示例 | 输出 |
---|
0 | 零占位符(必显位) | {0:0000.00} 194.039 | 0194.04 |
# | 数字占位符(可省略位) | {0:###.##} 194.039 | 194.04 |
. | 小数点 | {0:0.00} 12 | 12.00 |
, | 千分位或缩放 | {0:0,0} 12345 | 12,345 |
% | 百分比(乘 100) | {0:0%} 0.25 | 25% |
; | 正/负/零格式分隔符 | {0:#.##;(#.##);"Zero"} | |
\ | 转义符 | {0:\#0} 12 | #12 |
4. 日期时间格式化(标准格式符)
格式符 | 示例 | 输出 |
---|
d | {0:d} 2009-3-20 | 2009-3-20 |
D | {0:D} 2009-3-20 | 2009年3月20日 |
f | {0:f} | 2009年3月20日 15:37 |
F | {0:F} | 2009年3月20日 15:37:52 |
g | {0:g} | 2009-3-20 15:38 |
G | {0:G} | 2009-3-20 15:39:27 |
m | {0:m} | 3月20日 |
t | {0:t} | 15:41 |
T | {0:T} | 15:41:50 |
o | ISO 8601 | 2009-03-20T15:37:52.0000000+08:00 |
R | RFC1123 | Fri, 20 Mar 2009 15:37:52 GMT |
5. 对齐与空格占位
string.Format("{0,-10}", "Hi"); // 左对齐宽度 10
string.Format("{0,10}", "Hi"); // 右对齐宽度 10
6. 常用示例
// 千分位 + 小数
string.Format("{0:N2}", 56789); // 56,789.00
// 货币(两位小数)
string.Format("{0:C}", 0.2); // ¥0.20
// 百分比(1 位小数)
string.Format("{0:P1}", 0.2458); // 24.6%
// 固定位数(整数)
string.Format("{0:D4}", 23); // 0023
// 自定义小数格式
(56789 / 100.0).ToString("#.##"); // 567.89