decimal
以前はとの値の違いを理解していると思ってdouble
いましたが、今ではこのコード スニペットの動作を正当化できません。
たとえば、次のように、2 つの 10 進数の差をいくつかの間隔で割る必要があります。
decimal minimum = 0.158;
decimal maximum = 64.0;
decimal delta = (maximum - minimum) / 6; // 10.640333333333333333333333333
次に、間隔を逆の順序で作成しますが、最初の結果はすでに予想外です。
for (int i = 5; i >= 0; i--)
{
Interval interval = new Interval(minimum + (delta * i), minimum + (delta * (i + 1));
}
{53.359666666666666666666666665, 63.999999999999999999999999998}
最大値は正確に 64 であると予想します。ここで何が欠けていますか?
どうもありがとうございました!
編集:double
代わりに使用するdecimal
と、正しく動作するようです!