使用C#中的ToString()格式化数字以具有尾随零

7
我想通过ToString()方法格式化一个数字。
我一直在使用<myVar>.ToString("#.##");,得到的结果是13.11422.22
如何让输出显示为13.1014.00以及22.22
我不希望像现在这样隐藏零。

正如Royi所说,使用该格式。同时,查看官方文档也会有所帮助,该文档解释了自定义格式字符串之间的区别。 - Anya Shenanigans
3个回答

19

因为在格式字符串中,“#”用于表示可选的字符占位符; 只有在需要表示数字时才使用它。

如果你这样做:0.ToString("0.##"); 你会得到:0

有趣的是,如果你这样做:0.ToString("#.0#"); 你会得到:.0

如果你想要所有三个数字:0.ToString("0.00"); 将产生:0.00

更多信息请参见此处


10

你也可以使用 数字格式化符号 ("N") 并带有 2 位精度。

Console.WriteLine((13.1).ToString("N2")); // 13.10
Console.WriteLine((14).ToString("N2"));   // 14.00
Console.WriteLine((22.22).ToString("N2")); // 22.22

请记住,此格式说明符默认使用CurrentCultureNumberDecimalSeparator。 如果您的不是 . ,则可以在ToString方法的第二个参数中使用具有 . 作为NumberDecimalSeparator的文化(例如InvariantCulture)。


3
使用零格式说明符是可能的:
.ToString(".00");

一个例子:
int k=25;
string str_1 = k.ToString(".00"); // Output: "25,00"

哈希符号#表示该值是可选的。例如:
string str_2 = 0.ToString("0.##");// Output: "0"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接