在C#中添加小数的小数,我没有要求

时间:2016-01-29 21:11:07

标签: c# double rounding

我写的一个程序有一个奇怪的输出,我将其归结为以下代码的行为:

class Program
{
    public static void Main()
    {
        double test1 = 0.1;
        double test2 = Math.Pow(10, -4);
        double test3 = 0.1+Math.Pow(10, -4);
    }
 }

在调试模式下检查test1test2test3的值时,前两个变量的值为

test1 = 0.1

test2 = 0.0001

这是我指定的,但他们的总和变为

test3 = 0.10010000000000001

似乎有10 ^ { - 17}的错误。我的问题是:

  • 为什么会这样?
  • 我能做些什么来阻止它吗?

感谢。

0 个答案:

没有答案