Math.Pi常量是错误的

maf*_*afu 0 .net math

我很清楚Double只有很多精度,但是如果可能的话我们仍然应该尽量达到高精度.所以我当然不希望在官方的.NET 4系统库中看到这一点.

// Summary:
//     Represents the ratio of the circumference of a circle to its diameter,
//     specified by the constant, ?.
public const double PI = 3.14159;
Run Code Online (Sandbox Code Playgroud)

为什么只有6位数?使用准确的值会很容易且自由.我不是在.NET中做科学工作,但我确信其他人都做了,而且当Pi不准确时,他们会感到惊讶.同样适用于E.

编辑:这调整为关于Visual Studio中常量的反映.见 后续问题

Han*_*ant 15

从.NET 4.0参考源中的Math.cs复制并粘贴:

  public const double PI = 3.14159265358979323846;
  public const double E  = 2.7182818284590452354;
Run Code Online (Sandbox Code Playgroud)

不知道你在看什么.

它是一个后续问题的逆向工程,您在查看使用"转到定义"上下文菜单项时从程序集元数据创建的自动生成的文本.是的,生成此文本的代码似乎使用公共双常量值的默认%f格式.非常罕见的btw,.NET框架中没有很多公共常量是双重的.您可以在connect.microsoft.com上提交反馈报告