私の質問は少し理論的ですが、実際にはそれが必要です。
2つの二重変数XとYがあると仮定しましょう。YはXの次の倍数です(実数は0から1の間隔でも無限であるため、実数を倍に保つことはできません) 。
(Y-X)は一定ですか?はいの場合、その価値は何ですか?
PS私の質問はMicrosoft.NETFrameworkに関連しています。
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#
Edit:
Implementation in C# see here
.NETの2つのdouble値の最小差はDouble.Epsilonです。
double値の比較については、有用な情報についてこのSO質問への回答を参照してください(受け入れられた回答が示すように、可能な限りDoubleの代わりにDecimalを使用する必要があります)。