什么是双数据类型的最小一步? (。净)(What is the minimal step in

2019-10-17 20:44发布

我的问题是有点理论,但实际上我需要在实践中。

让我们假设我们有两个变量XY。 YX的下一个特定双号(因为你已经知道我们不能保持 任意实数,因为实数,即使在0到1的区间是无穷大)。

(Y - X)是不变的? 如果是什么是它的价值呢?

PS我的问题是有关Microsoft.NET框架。

Answer 1:

在.NET两个双值之间的最小差值是Double.Epsilon 。

至于比较双重价值,看到了答案, 这太问题有用的信息(而作为公认的答案说, 小数 ,而应使用双尽可能)。



Answer 2:

还有我所知在给定的时间间隔从找到一个给定值的下一个可表示双重或浮点值没有一个框架的方法为止。 从值的下一表示数dd + Double.Epsilon 。 连续双打之间的距离为较大的双值大。 Double.Epsilon可表示双打之间的最小距离 ,这仅发生于接近零的值的距离。

在C或C ++库这里经常有这种功能,例如在Boost库为C ++。 我去看看我能找到的C#实现

http://www.boost.org/doc/libs/1_39_0/libs/math/doc/sf_and_dist/html/math_toolkit/special/next_float/nextafter.html

编辑:

在C#实现看这里

下一个较高/较低的IEEE双精度数



文章来源: What is the minimal step in double data type? (.NET)