【问题标题】:VB.NET FormatNumber equivalent in C#?C#中等效的VB.NET FormatNumber?
【发布时间】:2008-09-08 10:59:34
【问题描述】:

VB.NET FormatNumber 函数是否有 C# 等效项?

即:

JSArrayString += "^" + (String)FormatNumber(inv.RRP * oCountry.ExchangeRate, 2);

【问题讨论】:

    标签: c# .net vb.net


    【解决方案1】:

    在 C# 和 VB.NET 中,您可以使用 .ToString() 函数或 String.Format() 方法来格式化文本。

    使用 .ToString() 方法,您的示例可以写成:

    JSArrayString += "^" + (inv.RRP * oCountry.ExchangeRate).ToString("#0.00")
    

    或者使用 String.Format() 它可以写成:

    JSArrayString = String.Format("{0}^{1:#0.00}",JSArrayString,(inv.RRP * oCountry.ExchangeRate))
    

    在上述两种情况下,我都对货币使用了自定义格式,其中 # 表示可选占位符,0 表示 0 或值(如果存在)。

    其他格式字符可用于帮助设置格式,例如 D2 表示 2 位小数或 C 显示为货币。在这种情况下,您不想使用 C 格式化程序,因为这会插入货币符号和其他不需要的分隔符。

    有关如何使用 String.Format 和不同格式选项的更多信息和示例,请参阅“String.Format("{0}", "formatting string"};”或“String Format for Int”。

    【讨论】:

    【解决方案2】:

    是的,.ToString(string) 方法。 例如,

    int number = 32;
    string formatted = number.ToString("D4");
    Console.WriteLine(formatted);
    // Shows 0032
    

    请注意,在 C# 中,您不使用数字来指定格式,而是使用字符或字符序列。 在 C# 中格式化数字和日期需要几分钟的时间来学习,但是一旦您了解了原理,您就可以通过查看参考资料快速获得所需的任何内容。

    这里有几篇 MSDN 文章可以帮助您入门:

    Standard Numeric Format Strings Formatting Types

    【讨论】:

      【解决方案3】:

      您可以使用字符串格式化程序来完成同样的事情。

      double MyNumber = inv.RRP * oCountry.ExchangeRate;
      JSArrayString += "^" + MyNumber.ToString("#0.00");
      

      【讨论】:

        【解决方案4】:

        虽然我建议在这种情况下使用 ToString,但请始终记住,您可以通过引用 Microsoft.VisalBasic.dll 来使用 C# 中的任何 VB.Net 函数或类。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-12-05
          • 2011-01-27
          • 1970-01-01
          • 2011-05-07
          • 1970-01-01
          • 2014-02-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多