【问题标题】:How to format a string with thousands separation and decimal comma?如何格式化带有千位分隔符和十进制逗号的字符串?
【发布时间】: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


    【解决方案1】:

    你可以使用:

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

    这假设您的文化使用您想要的格式。您可以明确指定文化,例如:

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

    对于文化“德国(德国)”("de-DE")。编辑为Parse 方法指定格式提供程序。

    【讨论】:

      【解决方案2】:

      好的,我解决了这个问题:

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

      【讨论】:

      • 这当然等价于Convert.ToDouble(amount).ToString("0,0.00")。但正如我在回答中所说,"N" 也可以用来代替"0,0.00"(或"N2",在文化具有NumberDecimalDigits2 不同的极少数情况下)。
      【解决方案3】:

      另外,以下内容还可以让用户轻松自定义我的应用程序的要求。

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

      【讨论】:

      • 完美的sn-p解决方案!!!复制粘贴-> 作品!你很棒 !!!我们真的可以根据需要定义或自定义数字格式。对我来说就像:string groupSeperator = "'";字符串小数分隔符 = "."; int decimalDigits = 0; var s_TotalWordCount = m_TotalWordCount.ToString("N", new NumberFormatInfo { NumberDecimalSeparator = decimalSeperator, NumberDecimalDigits = decimalDigits, NumberGroupSeparator = groupSeperator });
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多