C# 使用ToString()格式化数字

C# 使用ToString()格式化数字,c#,decimal,C#,Decimal,我正在使用.ToString(“#.###”)和获取类似13.1和14和22.22 但是我想要13.10和14.00和22.22 我一直在搜索,所有东西都在想如何隐藏零,这就是我的想法,任何想法都可以通过使用零格式说明符来实现: .ToString(".00"); 例如: int k=25; string str_1 = k.ToString(".00"); // Output: "25,00" 哈希符号#表示该值是可选的。例如: string str_2 = 0.ToString("0.#

我正在使用
.ToString(“#.###”)和获取类似
13.1
14
22.22

但是我想要
13.10
14.00
22.22


我一直在搜索,所有东西都在想如何隐藏零,这就是我的想法,任何想法都可以通过使用零格式说明符来实现:

.ToString(".00");
例如:

int k=25;
string str_1 = k.ToString(".00"); // Output: "25,00"
哈希符号
#
表示该值是可选的。例如:

string str_2 = 0.ToString("0.##");// Output: "0"

因为在格式字符串中,#用于表示可选字符占位符;它仅在需要表示数字时使用

如果您改为这样做:
0.ToString(“0.###”)您得到:
0

有趣的是,如果您这样做:
0.ToString(#.0#)您得到:
.0

如果需要全部三位数字:
0.ToString(“0.00”)产生:
0.00

更多

您也可以使用
2
精度

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

请记住,默认情况下,此格式说明符使用
CurrentCulture
。如果您的区域性不是
,则可以使用
作为
ToString
方法中的
NumberDecimalSeparator
(类似)作为第二个参数

正如Royi所说,使用这种格式。这也有助于解释自定义格式字符串之间的差异。