1

私の質問は少し理論的ですが、実際にはそれが必要です。

2つの二重変数XYがあると仮定しましょう。YXの次の倍数です(実数は0から1の間隔でも無限であるため、実数をに保つことはできません) 。

(Y-X)は一定ですか?はいの場合、その価値は何ですか?

PS私の質問はMicrosoft.NETFrameworkに関連しています。

4

2 に答える 2

4

There is no framework method as far as I'm aware for finding the next representable double or float value from a given value in a given interval. The next representable number from a value d is not d + Double.Epsilon. The distance between consecutive doubles is larger for larger double values. Double.Epsilon is the minimum distance between representable doubles, a distance which only occurs for values near zero.

In C or C++ libraries there are often functions for this, e.g. here in the Boost library for C++. I'll see if I can find an implementation for C#

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

Edit:

Implementation in C# see here

next higher/lower IEEE double precision number

于 2013-03-18T14:17:23.387 に答える
4

.NETの2つのdouble値の最小差はDouble.Epsilonです。

double値の比較については、有用な情報についてこのSO質問への回答を参照してください(受け入れられた回答が示すように、可能な限りDoubleの代わりにDecimalを使用する必要があります)。

于 2013-03-18T14:11:08.663 に答える