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});