计算机的怪脾气......
double i = 0.0001;
double j =0.000100000000000001;
Console.WriteLine(i==j); //输出:true
揭秘!
计算机不能精确地表达浮点数(特殊形式的除外),因此,当需要比较两个浮点数是否相等时,应该比较其差的绝对值是否在某个允许的范围之内即可,无法做到像数学那样的精确比较。
if (Math.Abs(i-j)<1e-10)
Console.WriteLine("true");
else
Console.WriteLine("false");