为什么以不同的顺序添加正负双值会产生不同的结果?

时间:2017-11-29 14:15:29

标签: c# .net double addition

当我尝试添加其中一个值为负值的双值时,我已经看到过这种行为,我添加这些值的顺序显然很重要。这是我的测试

    double val1 = -0.06, val2 = 0.04, val3 = 0.02;
    double resOrder1 = val1 + val2 + val3;
    double resOrder2 = val2 + val3 + val1;
    Console.WriteLine(resOrder1); //3.46944695195361E-18
    Console.WriteLine(resOrder2); //0

我在这里错过了一些关键原则吗?此外,无论添加顺序如何,我如何确保if(resOrder1 == 0){}为真。不,我不想将数据类型更改为十进制。

0 个答案:

没有答案