【问题标题】:How to specify exponential constants in C#?如何在 C# 中指定指数常数?
【发布时间】:2010-12-03 12:41:36
【问题描述】:

我有一些将指数数定义为常数的 C 代码。如何用 C# 编写?

    double TOL = 1.E-8d;
    double TOL2 = 1.E - 8;

【问题讨论】:

    标签: c# constants numeric exponential


    【解决方案1】:

    如果小数点后没有数字,则不包括该点。与 C/C++/等相同。所以:

    double TOL= 1E-8;
    double TOL2 = 1E-8;
    

    或者,对于不同的值:

    double TOL = 1.5E-8;
    

    这在规范中,第 2.4.4.3 节:

    http://msdn.microsoft.com/en-us/library/ms228593.aspx

    【讨论】:

    【解决方案2】:
        double tol = 1.0e8;
        double tol2 = 1.0e-8;
    

    【讨论】:

      【解决方案3】:

      您的第一个表单非常接近 - 但您只需要在“.”之后添加一个数字,或者删除“.”完全:

      double TOL = 1.0E-8d;
      double TOL = 1E-8d;
      

      有关这方面的规则,请参阅C# language spec 的第 2.4.4.3 节。请注意,如果您愿意,也可以使用小写的“e”:

      double TOL = 1.0e-8d;
      double TOL = 1e-8d;
      

      如果您从“真实”文字中省略后缀,则 double 是默认类型,因此这些也是有效的:

      double TOL = 1.0e-8;
      double TOL = 1e-8;
      

      ...但我个人会包括后缀以提高可读性。

      【讨论】:

        【解决方案4】:

        这就是你在 C# 中的做法:

        double value = -4.42330604244772E-305;
        

        另见MSDN on System.Double

        【讨论】:

          【解决方案5】:

          这是一个略有不同的示例,不适用于指数数。

          double value = 1744056d 在 Linux 上被 g++ 报错。

          double value = 1744056.0d 很好。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-03-25
            • 2011-07-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-11-12
            • 1970-01-01
            • 2020-04-02
            相关资源
            最近更新 更多