我觉得这应该很容易在网上找到,但我很难过。
有谁知道Double.Epsilon
的c#值是多少?我正在寻找确切的数值。
答案 0 :(得分:6)
这是它的声明:
[__DynamicallyInvokable]
public const double Epsilon = 4.94065645841247E-324;
答案 1 :(得分:2)
不,这当然不正确。
首先:通过小程序或阅读documentation可以轻松找到Double.Epsilon
的值:
4.94065645841247E-324
第二:不要将此值与Machine Epsilon混淆,this question通常用于两个double值之间的比较。有关“Machine Epsilon”的详细信息,请参阅{{3}}。
答案 2 :(得分:1)
此常量的值为4.94065645841247e-324。
答案 3 :(得分:1)
这些答案都不是确切的数值。确切的值是2的幂,即2 ^ -1074,因为这是IEEE浮点数实际存储在现代计算机中的方式。给出的所有其他答案都是十进制近似值。如果将该十进制近似值分配给double
,那么它将四舍五入为2 ^ -1074,因此在内部,寄存器或存储器位置将接收真正的" Epsilon"值。因此,使用十进制常量将存储位置初始化为最小浮点值有效,但十进制常量仍然不此最小浮点值的实际值。
说明:用IEEE表示法写的最小正值是
0.0000000000000000000000000000000000000000000000000001B x 2 ^ -1022。
(B代表二进制基数)
这是在二进制点右侧的1位移位52位,然后移位另外1022位,总共1074位。前导符号位为零。符号位(1位)加系数(52位)加指数(11位)给出64位存储空间。
另请注意,这是一个非正规化的"浮点值,因为指数是-1022。
请参阅https://en.wikipedia.org/wiki/IEEE_floating_point并搜索" 1074"。
PS。我的计算器更准确地表示Double.Epsilon
= 2 ^ -1074的值为4.9406564584124654417656879286822e-324。