C#格式化数字的不同语法

时间:2013-03-27 20:50:12

标签: c# number-formatting

我在C#中有一个关于格式化数字的简单问题。

我有这样的格式

{0:0.00######################}

this website建议,基本上显示一个数字的至少2个小数位。

然后this website建议使用不同的格式字符串

0.00######################

现在,我理解前者和后者有功能差异。例如,我应该在string.Format()调用中使用前者,在Decimal.ToString()调用中使用后者。但我想知道的是,使用花括号和

的重要性
0:

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

当您使用String.Format时,您可以拥有多个将被格式化的“项目”。这是通过使用{n}确定的,其中n是值列表的索引:

var result = string.Format("Arg1 == {0}, Arg2 == {1}", arg1, arg2);

Decimal.ToString并不需要这样,因为只有一个值。

0:实际上只是{0}:用于打破格式规范(:之后的所有内容与{ToString实际上相同1}}方法使用)。

答案 1 :(得分:2)

使用String.Format时,花括号表示您要放置一个要替换为字符串的参数。 0表示它是第一个参数,因此例如考虑以下内容:

Console.WriteLine(String.Format("{0} {1} {2}", "A", "B", "C"));

输出“A B C”。鉴于:

Console.WriteLine(String.Format("{2} {0} {1}", "A", "B", "C"));

输出“C A B”。

希望有所帮助。

答案 2 :(得分:1)

使用大括号作为“符号”替换为值。花括号中的数字(基于0的索引)是指向值的索引。

示例:

string.Format("{0:#,##0} {1:#,##0} {0:#,##0}", 2345, 6789);

结果:

2,345 6,789 2,345