gpt4 book ai didi

c# - Double.MinValue、MaxValue 错误的编译时间常量 -- mscorlib

转载 作者:太空宇宙 更新时间:2023-11-03 21:37:44 24 4
gpt4 key购买 nike

我一直在寻找并尝试使用 dotPeek 的“导出到项目”功能从 mscorlib 库 (4.0) 的源代码中学习,当我尝试构建它时,它失败了,因为 Double 的 MinValue 和 MaxValue 是“坏的”编译时间常量'。

[__DynamicallyInvokable]
public const double MinValue = -1.79769313486232E+308; // Bad compile time constant

[__DynamicallyInvokable]
public const double MaxValue = 1.79769313486232E+308; // Bad compile time constant

我到底错过了什么?导出编译器生成的代码会解决这个问题,还是有某种幕后操作可以解决这个问题?

注意:使用 Visual Studio 2013 Ultimate 构建,我有 2012 和 2010 版本的 Visual Studio(喜欢大学),不确定我使用的编译器是否会改变这个问题。

最佳答案

问题是为您生成常量的应用程序生成了错误的数字。正确的数字是:

    public const double MinValue = -1.7976931348623157E+308;

    public const double MaxValue = 1.7976931348623157E+308;

生成的代码将最后 4 位数字从 3157 舍入到 32(00),这超过了 double 值。

关于c# - Double.MinValue、MaxValue 错误的编译时间常量 -- mscorlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20873268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com