decimal
我曾经认为我理解和值之间的区别double
,但现在我无法证明这段代码片段的行为是正确的。
我需要以某些间隔划分两个十进制数之间的差异,例如:
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
它似乎可以正常工作!