如何格式化一个带有千位分隔符和小数逗号的字符串?

3

我有一些字符串:

string amount = "123456";
string amount2 = "123456.78";

我希望输出结果为:

amount: 123.456,00
amount2: 123.456,78

我已经在这里查看了,但是这并不适用于我的例子。

3个回答

9

您可以使用:

decimal.Parse(amount).ToString("N")

这里假设你所在的文化使用你想要的格式。你可以明确指定一个文化,例如:
decimal.Parse(amount, CultureInfo.InvariantCulture)
    .ToString("N", new CultureInfo("de-DE"))

针对文化 "德国 (德国)" ("de-DE")。编辑以指定Parse方法的格式提供程序。


4

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

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

1
当然,这等同于 Convert.ToDouble(amount).ToString("0,0.00")。但正如我在答案中所说的那样,也可以使用 "N" 代替 "0,0.00"(或在文化具有与 2 不同的 NumberDecimalDigits 的罕见情况下使用 "N2")。 - Jeppe Stig Nielsen

1

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

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

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

完美的片段解决方案!!! 复制粘贴-->立竿见影! 您真是太棒了! 我们可以根据需要定义或自定义数字格式。 对我来说,它就像这样:             string groupSeperator = "'";             string decimalSeperator = ".";             int decimalDigits = 0;            var s_TotalWordCount = m_TotalWordCount.ToString("N", new NumberFormatInfo { NumberDecimalSeparator = decimalSeperator, NumberDecimalDigits = decimalDigits, NumberGroupSeparator = groupSeperator }); - Titwan

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