2

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

我有这样的格式

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

这是由这个网站建议的,它基本上显示了一个数字的至少 2 位小数。

然后这个网站建议了一个不同的格式字符串

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

现在,我明白前者和后者在功能上有区别。例如,我应该在 string.Format() 调用中使用前者,在 Decimal.ToString() 调用中使用后者。但我想知道的是,拥有花括号和

0:

有任何想法吗?

4

3 回答 3

3

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

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

这不是必需的,Decimal.ToString并且类似,因为只有一个值。

0:真的只是{0}, 并且:用于打破格式规范(之后的所有内容都与方法使用:的内容相同ToString)。

于 2013-03-27T20:52:16.940 回答
2

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

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

将输出“AB C”。然而:

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

将输出“CA B”。

希望有帮助。

于 2013-03-27T20:52:37.767 回答
1

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

例子:

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

将导致:

2,345 6,789 2,345

于 2013-03-27T20:53:37.670 回答