字符串格式化
标准数字格式字符串:
http://msdn.microsoft.com/zh-cn/library/dwhawy9k.aspx
1、 货币格式:
跟系统的环境有关,中文系统默认格式化人民币(¥),英文系统格式化美元($)。
Console.WriteLine(string.Format("结果:{0:C}", 0.28));
//结果:¥0.28
//指定小数点位数:
Console.WriteLine(string.Format("结果:{0:C1}", 0.2));
//结果:¥0.2
Console.WriteLine(string.Format("结果:{0:C2}", 0.28));
//结果:¥0.28
Console.WriteLine(string.Format("结果:{0:C3}", 0.287));
//结果:¥0.287
//四舍五入:
Console.WriteLine(string.Format("结果:{0:C1}", 0.28));
//结果:¥0.3
Console.WriteLine(string.Format("结果:{0:C1}", 0.23));
//结果:¥0.2
//指定区域信息:
Console.WriteLine(string.Format(CultureInfo.CreateSpecificCulture("zh-CHS"), "结果:{0:C}", 12345.6789));
//结果:¥12,345.68
Console.WriteLine(string.Format(CultureInfo.CreateSpecificCulture("en-US"), "结果:{0:C}", 12345.6789));
//结果:$12,345.68
2、 整数格式:数值为小数等非整数格式会抛出异常。
Console.WriteLine(string.Format("结果:{0:D}", 123));
//结果:123
//指定位数:
Console.WriteLine(string.Format("结果:{0:D5}", 123));
//结果:00123
Console.WriteLine(string.Format("结果:{0:D5}", 1234567));
//结果:1234567
Console.WriteLine(string.Format("{0:D5}", -123));
//结果:-00123
Console.WriteLine(string.Format("结果:{0:D5}", -1234567));
//结果:-1234567
自定义数字格式:
//结果:12345
Console.WriteLine(string.Format("结果:{0:000000}", 123));
//结果:000123
Console.WriteLine(string.Format("结果:{0:000.000}", 5.2));
//结果:005.200
2、数字占位符:
//结果:12345
Console.WriteLine(string.Format("结果:{0:######}", 123));
//结果:123
Console.WriteLine(string.Format("结果:{0:###.###}", 5.2));
//结果:5.2
3、小数点:
//结果:1.2
Console.WriteLine(string.Format("结果:{0:000.000}", 1.2));
//结果:001.200
Console.WriteLine(string.Format("结果:{0:#.#}", 1.2));
//结果:1.2
Console.WriteLine(string.Format("结果:{0:###.###}", 1.2));
//结果:1.2
4、千位分隔符和数字比例换算符:
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:#,#}", 1234567));
//结果:1,234,567
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0,0}", 1234567));
//结果:1,234,567
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:##,####,####}", 1234567));
//结果:1,234,567
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:00,0000,0000}", 1234567));//格式超出位数补0
//结果:0,001,234,567
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:#,}", 1234567890));
//结果:1234568
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0,}", 1234567890));
//结果:1234568
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:#,,}", 1234567890));
//结果:1235
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0,,}", 1234567890));
//结果:1235
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:###,,,}", 1234567890));
//结果:1
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:000,,,}", 1234567890));
//结果:001
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:###,,,,}", 1234567890));
//结果:
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:000,,,,}", 1234567890));
//结果:000
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:#,#,,}", 1234567890));
//结果:1,235
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0,0,,}", 1234567890));
//结果:1,235
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:####,####,,}", 1234567890));
//结果:1,235
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0000,0000,,}", 1234567890));
//结果:00,001,235
5、科学记数法: 格式字符串中“E”、“E+”、“E-”、“e”、“e+”或“e-”后面紧跟至少一个“0”字符,用于保存指数值。对于多位数的指数值,有几位数就用几个0来替换;对于格式字符串中超过指数位数的0,在结果集中还是以0表示。
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0E+0}", 30));
//结果:3E+1
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0E+0}", 3000));
//结果:3E+3
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0E+000}", 30));
//结果:3E+001
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0E+000}", 300000000000));
//结果:3E+011
//科学记数法用0占位符或小数点来定位:
//正指数:
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0.00E+0}", 30));
//结果:3.00E+1
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0.##E+0}", 30));//#被忽略
//结果:3E+1
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:#.##E+0}", 30));//小数点定位
//结果:3E+1
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:00E+0}", 3000));
//结果:30E+2
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0#E+0}", 3000));//#不被忽略
//结果:30E+2
//负指数:
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:000E+0}", 30));//30是2位数不够位数匹配字符格式000的3位数,E+被程序自动改为E-
//结果:300E-1
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:00000E-0}", 30));
//结果:30000E-3
6、百分比占位符:
//结果:13%
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0.00%}", 0.1234));
//结果:12.34%
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "结果:{0:0.00%}", 0.12345));//省略部分四舍五入
//结果:12.35%
7、转义符:字符串格式符号用作普通字符用转义符“\”, 反斜杠“\”进行转义 “\\”。
8、部分分隔符:
|
部分数目 |
说明 |
|
一个部分 |
格式字符串应用于所有值。 |
|
两个部分 |
第一部分应用于正值和零,第二部分应用于负值。 如果要设置格式的数字为负,但根据第二部分中的格式舍入后为零,则最终的零根据第一部分进行格式设置。 |
|
三个部分 |
第一部分应用于正值,第二部分应用于负值,第三部分应用于零。 第二部分可以留空(分号间没有任何内容),在这种情况下,第一部分应用于所有非零值。 如果要设置格式的数字为非零值,但根据第一部分或第二部分中的格式舍入后为零,则最终的零根据第三部分进行格式设置。 |
//结果:22
Console.WriteLine(string.Format("结果:{0:##;(##)}", -22));
//结果:(22)
Console.WriteLine(string.Format("结果:{0:##;(##);**Zero**}", 22));
//结果:22
Console.WriteLine(string.Format("结果:{0:##;(##);**Zero**}", -22));
//结果:(22)
Console.WriteLine(string.Format("结果:{0:##;(##);**Zero**}", 0));
//结果:**Zero**
标准日期和时间格式字符串:
http://msdn.microsoft.com/zh-cn/library/az4se3k1.aspx
//结果:2012-1-2 17:35:34
Console.WriteLine(string.Format(CultureInfo.CreateSpecificCulture("en-US"), "结果:{0:G}", DateTime.Now));
//结果:1/2/2012 5:35:34 PM
自定义日期和时间格式字符串:
http://msdn.microsoft.com/zh-cn/library/8kb3ddd4.aspx
Console.WriteLine(string.Format("结果:{0:yy-M h:m:s}", DateTime.Now));
//结果:12-1 5:51:56
Console.WriteLine(string.Format("结果:{0:yyyy-MM hh:mm:ss}", DateTime.Now));
//结果:2012-01 05:51:56
//24小时制:
Console.WriteLine(string.Format("结果:{0:yy-M H:m:s}", DateTime.Now));
//结果:12-1 17:51:56
Console.WriteLine(string.Format("结果:{0:yyyy-MM HH:mm:ss}", DateTime.Now));
//结果:2012-01 17:51:56
浙公网安备 33010602011771号