C# 如何使用千位分隔符和十进制逗号格式化字符串?

C# 如何使用千位分隔符和十进制逗号格式化字符串?,c#,.net,string,formatting,string-formatting,C#,.net,String,Formatting,String Formatting,我有一些条件: string amount = "123456"; string amount2 = "123456.78"; 我希望输出为: amount: 123.456,00 amount2: 123.456,78 我已经看过了,但这不适用于我的示例。您可以使用: decimal.Parse(amount).ToString("N") 这假定您的区域性使用您想要的格式。可以显式指定区域性,例如: decimal.Parse(amount, CultureInfo.InvariantC

我有一些条件:

string amount = "123456";
string amount2 = "123456.78";
我希望输出为:

amount: 123.456,00
amount2: 123.456,78
我已经看过了,但这不适用于我的示例。

您可以使用:

decimal.Parse(amount).ToString("N")
这假定您的区域性使用您想要的格式。可以显式指定区域性,例如:

decimal.Parse(amount, CultureInfo.InvariantCulture)
    .ToString("N", new CultureInfo("de-DE"))

对于文化“德语(德语)”(
“de de de”
)。编辑以指定
Parse
方法的格式提供程序。

好的,我解决了以下问题:

string.Format("{0:0,0.00}", Convert.ToDouble(amount))

另外,以下内容还可以方便用户自定义我的应用程序的要求

string groupSeperator = ".";
string decimalSeperator = ",";
int decimalDigits= 2;

decimal.Parse(amount).ToString("N", new NumberFormatInfo{NumberDecimalSeparator = decimalSeperator , NumberDecimalDigits = decimalDigits, NumberGroupSeparator = groupSeperator});

这当然相当于
Convert.ToDouble(amount).ToString(“0,0.00”)
。但正如我在回答中所说,
“N”
也可以用来代替
“0,0.00”
(或者
“N2”
,在文化中有
NumberDecimalDigits
不同于
2
)的罕见情况下。完美的片段解决方案!!!复制粘贴-->有效!你太棒了!!!我们可以根据需要定义或定制数字格式。对我来说就像:字符串GroupSeparator=“”;字符串小数分隔符=“.”;整数小数位数=0;var s_TotalWordCount=m_TotalWordCount.ToString(“N”,新的NumberFormatInfo{NumberDecimalSeparator=decimalSeparator,NumberDecimalDigits=decimalDigits,NumberGroupSeparator=GroupSeparator});