已解决

【精华】string.Format的用法汇总?已解决

学员:徐豫锋提问时间:2008-10-03 22:08:11

1、string.Format("我的姓名是{0}年龄是{1}",name,age)
2、string.Format("我的年龄是{1}:2D",age)
输入5输出05
3、如何输出0.50?
还有那些用法,我看了msdn和百度还是不太明白,大家指导一下,谢谢!

采纳为答案

回答人:amandag(高歌 .NET学习顾问)回答时间:2008-10-04 17:52:11

String.Format和WriteLine的格式化都由相同的格式化规则控制:嵌入的格式参数由零个或多个指定格式的表达式组成,指定格式的表达式形式为”|N[, M][:formatString]”,arg1,…,argN,其中:
 N是指出要进行格式化的参数的整形数(丛0开始编号)
 M是可选的整形参数,决定字段宽度和对齐方式。它指定包含格式化值的区域的宽度,剩余空间用空格填充。如果M是负数,那么格式化值被左对齐;如果M是正数,那么格式化值被右对齐。
 formatString是可选的格式化编码的字符串。
 argN是一个表达式,用于替换格式化字符串中对应的引用。
如果argN是null,就使用空字符串。如果忽略formatString,就由N指定的参数的ToString方法提供格式化编码。
下表列出了9个内置的格式字符
格式字符 描述
C或c 货币 与本地设置对应
D或d 整数 精度定义符设置最少位数;如果实际数字的位数少于指定的精度,则用0填充
E或e 科学记数法精度定义符决定小数位数,缺省为6位
F或f 固定小数位 精度定义符设置小数位数
G或g 常规 选择E或F中最紧凑的格式
N或n 数字 产生了一个嵌入了逗号的数字。精度定义符设置小数位数
P或p 百分比
R或r 可恢复 确保北转换为字符串的数字值将被解析回相同的数字值
X或x 十六进制 精度定义符设置字符串中表示的最少数字位数。不足宽度用0填充

学员对该答案的评价 谢谢。。。

其他回答

回答人:amandag(高歌 .NET学习顾问)回答时间:2008-10-04 17:51:45
string name = "aa";
int age = 5;
Console.WriteLine(string.Format("我的姓名是{0}年龄是{1}", name, age));
Console.WriteLine(string.Format("我的年龄是{0:D2}", age));//{0}指代后面的第一个参数,输出05
Console.WriteLine(string.Format("我的年龄是{0:F2}", age));//{0}指代后面的第一个参数,输出5.00
回答人:amandag(高歌 .NET学习顾问)回答时间:2008-10-04 17:52:51
//看看这个程序的输出,理解一下
using System;
class FormatDemo
{
public static void Main()
{
Console.WriteLine("{0:C2}", 2000000.456m);
Console.WriteLine(String.Format("{0:C2}", 2000000.456m));
Console.WriteLine(2000000.456m.ToString("C2"));
Console.WriteLine("{0:D8}", 45687);
Console.WriteLine("{0:E3}", 345678900000);
Console.WriteLine("{0:F3}", 3.7667892);
Console.WriteLine("{0,10:X6}", 950);
Console.WriteLine("{0,-10:X6}", 950);
//如果在#位置上没有字符,忽略#,如果的位置上有一个字符,就用这个字符代替,否则就显示
Console.WriteLine("{0:#.00}", 1.2);
Console.ReadLine();
}
}