【发布时间】:2013-09-13 17:06:53
【问题描述】:
我有一些字符串:
string amount = "123456";
string amount2 = "123456.78";
我希望输出是:
amount: 123.456,00
amount2: 123.456,78
我已经看过 here,但这不适用于我的示例。
【问题讨论】:
标签: c# .net string formatting string-formatting
我有一些字符串:
string amount = "123456";
string amount2 = "123456.78";
我希望输出是:
amount: 123.456,00
amount2: 123.456,78
我已经看过 here,但这不适用于我的示例。
【问题讨论】:
标签: c# .net string formatting string-formatting
你可以使用:
decimal.Parse(amount).ToString("N")
这假设您的文化使用您想要的格式。您可以明确指定文化,例如:
decimal.Parse(amount, CultureInfo.InvariantCulture)
.ToString("N", new CultureInfo("de-DE"))
对于文化“德国(德国)”("de-DE")。编辑为Parse 方法指定格式提供程序。
【讨论】:
好的,我解决了这个问题:
string.Format("{0:0,0.00}", Convert.ToDouble(amount))
【讨论】:
Convert.ToDouble(amount).ToString("0,0.00")。但正如我在回答中所说,"N" 也可以用来代替"0,0.00"(或"N2",在文化具有NumberDecimalDigits 与2 不同的极少数情况下)。
另外,以下内容还可以让用户轻松自定义我的应用程序的要求。
string groupSeperator = ".";
string decimalSeperator = ",";
int decimalDigits= 2;
decimal.Parse(amount).ToString("N", new NumberFormatInfo{NumberDecimalSeparator = decimalSeperator , NumberDecimalDigits = decimalDigits, NumberGroupSeparator = groupSeperator});
【讨论】: