我在C#中有一个关于格式化数字的简单问题。
我有这样的格式
{0:0.00######################}
由this website建议,基本上显示一个数字的至少2个小数位。
然后this website建议使用不同的格式字符串
0.00######################
现在,我理解前者和后者有功能差异。例如,我应该在string.Format()调用中使用前者,在Decimal.ToString()调用中使用后者。但我想知道的是,使用花括号和
的重要性0:
有什么想法吗?
答案 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