C#格式化字符串的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/22 18:09:28
格式字符串:
Console.WriteLine("{0,9:C2}",i);
最后一个技巧是,可以使用占位符(#)来代替这些格式字符串,例如:
double d=0.234;
Console.WriteLine("{0:#.00}"'d);
其结果为.23,因为如果在符号(#)的位置上没有字符,就会忽略符号(#),如果0的位置上有一个
字符,就用这个字符代替0,否则就显示0。
--------书上说的理解不了,谁换种说法解释---Console.WriteLine("{0:#.00}"'d);
---------------------------------------------------------------------------------------

我懂了,好像并不难,怎么没人懂,我主要是搞不懂#是什么意思,现在懂了,在这里#是格式化了0.234的0,因为是0所以忽略,而#后面的.00则表是保留小数点后两位,所以格式化出来就是.23 如果d=1.234 那么格式化出来应该是1.23

double d=0.234;
Console.WriteLine("{0:#.00}",d);

这个是复合格式化
格式项语法
每个格式项都采用下面的形式并包含以下组件:

{ 索引[,对齐][:格式字符串]}

必须使用成对的大括号(“{”和“}”)。

相关的解释你可以看看
http://technet.microsoft.com/zh-cn/txafckwd(VS.80).aspx
那说的比较多

我觉得没必要钻这个牛角尖,我开发这么些年,都没有用过这种格式
一般都只是用{0:00}
或者:{0:N}
之类的格式

我有一种格式化字符串输出!是这样的
double d=0.234;
Console.WriteLine("这个d的值是:{0}",d);//这里输出: 这个d的值是:0.234
如果需要有多个占位符,则以{0},{1},{2}……表示,而后面的变量用英文逗号隔开。例:
int a=1;int b=5;
Console.WriteLine("我有{0}元钱,不小心丢了{1}元钱,还剩{2}-{3}={4}元钱",b,a,b,a,b-a);--此处输出: 我有5元钱,不小心丢了1元钱,还剩5-1=4元钱
注意,这里的{0}{1}{2}{3}{4}与 b,a,b,a,b-a 分别对应
这种格式化字符串在C#中是这样定义一个string类型的变量的,如:
string message = string.Format("我有{0}元钱,不小心丢了{1}元钱,还剩{2}-{3}={4}元钱",b,a,b,a,b-a);//输出message得到上例相同的结果,定义变量需用string.Format("",)