String.Format问题

Bri*_*ian 0 .net c# vb.net string

MSDN提供了一个数字占位符示例:
1234.5678 ("#####") -> 1235
我发现这个令人困惑(我预期1234或其他),所以我在C#中编写了这个片段来测试它:

Console.WriteLine(String.Format("{0:#}", 1234.5678));
Console.WriteLine(String.Format("{0:#####}", 1234.5678));
Console.WriteLine(String.Format("{0:#}", "1234.5678"));
Console.WriteLine(String.Format("{0:#####}", "1234.5678"));
Run Code Online (Sandbox Code Playgroud)

它给出了这个输出:

1235
1235
1234.5678
1234.5678
Run Code Online (Sandbox Code Playgroud)

请解释.

Sco*_*man 13

前两个String.Format调用是格式化数字(十进制)值.格式字符串设置为仅显示整数部分(小数点前),因此该值是四舍五入的.

后两个String.Format调用是格式化一个字符串值,该值恰好包含数字的字符串表示形式.因此,您将准确回复所提供的内容.数字占位符仅适用于传递给的数字值String.Format.

  • 虽然我不能决定是否更正"数字"或给你一个额外的投票(不可能).:-) (2认同)