您的位置:首页 > 编程语言 > C#

C# string.format() 格式化说明符

2010-05-05 11:57 281 查看
一、定义

String.Format是将指定的 String类型的数据中的每个格式项替换为相应对象的值的文本等效项。

如:

(1)

string p1 = "Jackie";

string p2 = "Aillo";

Response.Write(String.Format("Hello {0}, I'm {1}", p1, p2));

(2)

Response.Write(String.Format("Hello {0}, I'm {1}", "Jackie", "Aillo"));

这二者的效果是一样的。都是将最后面的两项的值分别替换第一项的{0}和{1}。

输出的结果是:Hello Jackie, I'm Aillo
二、String.Format的多格式定义:

这里所谓的多格式是指一个格式项中可以定义1~3个格式参数,每种格式参数用分号(;)隔开。带2个和3个格式参数的格式项所对应的值必须是数值类型的,这样才能判断是否为负数、正数、零。

带1个格式参数:

//以科学计数法的格式输出

double p1 = 1000000;

Response.Write(String.Format("{0:E2}", p1));

带2个格式参数:

/*当格式项对应的值为非负数,则选择第一种格式;值为负数则选第二种格式*/

double p1 = 10000;

double p2 = -2420.50;

Response.Write(String.Format("{0:#,###0.00;#,###0.000;}<BR>", p1));

Response.Write(String.Format("{0:#,###0.00;#,###0.000;}", p2));

带3个格式参数:

/*当格式项对应的值为正数则选择第一张格式;

负数则为第二中格式;

值等于零则为第三种格式*/

1double p1 = 10000;

double p2 = -2420.50;

double p3 = 0.00;

Response.Write(String.Format("{0:#,###0.00;#,###0.000;#,###0.0000}<BR>", p1));

Response.Write(String.Format("{0:#,###0.00;#,###0.000;#,###0.0000}<BR>", p3));

Response.Write(String.Format("{0:#,###0.00;#,###0.000;#,###0.0000}", p2));

补充:

{0:N2} 中的N3,f3表示格式化之后数据的类型以及小数的位数。如:N2表示带2个小数的数字;

与此类似:

N或者n 表示 数字

F或者f 表示 固定点

E或者e 表示 科学计数法

D或者d 表示 十进制数

X或者x 表示 十六进制

G或者g 表示 常规

C或者c 表示 货币

IFormatProvider 由 NumberFormatInfo 和 DateTimeFormatInfo 实现。NumberFormatInfo 提供用于格式化基本数据类型的数字的区域性特定信息,而 DateTimeFormatInfo 提供用于格式化日期和时间值的区域性特定信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: