【问题标题】:How to insert a thousand separator (comma) with convert to double如何使用转换为双精度插入千位分隔符(逗号)
【发布时间】:2010-08-11 09:14:19
【问题描述】:

我正在尝试格式化文本框的内容:

this.lblSearchResults1.Text =
    Convert.ToDouble(lblSearchResults1.Text).ToString(); 

如何修改此内容以使文本包含逗号/千位分隔符?

即1,000 而不是 1000。

【问题讨论】:

标签: c# label


【解决方案1】:

看着standard numeric format strings

您可以最轻松地使用“N”,这将根据用户文化做正确的事情,因此在您的情况下,您只需将“N”作为参数添加到 ToString

([double]12345.67).ToString("N")

12,345.67

【讨论】:

  • 这个答案比 ToString("#,##0.00") 稍微好一点,ToString("#,##0.00") 工作方式相同,并且在不同的文化中也尊重不同的千位分隔符(例如德国的“.”和“'”在瑞士)。但是 ToString("N") 更清楚地表明格式可能是特定于文化的。
  • 尊重个人文化对我来说是胜利。但是,如果将整数显示为整数而不是浮点数呢?
  • 答案是“N0”,其中 0 是小数位数。 "N1"、"N2" 等都可以。
【解决方案2】:

对于完整的自定义控件,请使用... .ToString("#,##0.00") 或其变体。 ., 将被文化相关符号替换。在欧洲大部分地区,您会得到 1.234,56。
另一个有用的图片是0.0#

要根据用户(或选定的)文化使用模式,请使用The Numeric ("N") Format Specifier,如.ToString("N")"... {0:N}"

【讨论】:

  • 我正在遵循这种方法,但我在 Windows Server 2012 上得到了相反的结果,530000 变为 000,530
  • 彻底研究,然后用verifiable example 发布一个单独的问题。包括计算机的文化设置。
【解决方案3】:

如果您仔细查看Standard Numeric Format Strings,您可以尝试以下方法之一:

.ToString("n", CultureInfo.GetCultureInfo("en-US"))
.ToString("n", CultureInfo.GetCultureInfo("de-DE"))
.ToString("n", CultureInfo.CurrentCulture)

【讨论】:

    【解决方案4】:

    最简单的方法是:

    Convert.ToDouble("1234567.12345").ToString("N")
    

    如果你想控制小数位,你可以这样做:

    Convert.ToDouble("1234567.12345").ToString("N3")
    

    总体而言,查看 ToString 上的重载以获得更多令人兴奋的可能性。

    【讨论】:

    • (Int32.Parse("78956258")).ToString("N0") -- 保持简单!!
    • @JG'sSpark:我不确定你在说什么......这似乎和我的回答一样,不是更简单......
    【解决方案5】:

    上述响应的替代方法是使用

    this.lblSearchResults1.Text = String.Format("{0:N}", Convert.ToDouble(lblSearchResults1.Text))
    

    如果您需要小数位,只需在 N 之后输入您希望的小数位数即可。以下示例将返回带 2 个小数位的值。

    this.lblSearchResults1.Text = String.Format("{0:N2}", Convert.ToDouble(lblSearchResults1.Text))
    

    更多信息请参见http://msdn.microsoft.com/en-us/library/system.string.format.aspx

    【讨论】:

      【解决方案6】:

      double.Parse(Amount).ToString("N");

      【讨论】:

        【解决方案7】:

        不要将积分转换为 double 来执行此操作!
        使用 NumberFormatInfo 辅助类,例如:

            var nfi = new NumberFormatInfo() {
                NumberDecimalDigits = 0,
                NumberGroupSeparator = "."
            };
        
            var i = 1234567890;
            var s = i.ToString("N", nfi); // "1.234.567.890"
        

        【讨论】:

          猜你喜欢
          • 2019-07-24
          • 1970-01-01
          • 2015-06-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多