public static void Main()
{
Dictionary<string, double> values = new Dictionary<string, double>();
values.Add("a", 0.002);
values.Add("b", 0.003);
values.Add("c", 0.012);
// Summing iteratively.
double v1 = 615.0;
foreach (KeyValuePair<string, double> kp in values)
{
v1 += kp.Value;
}
Console.WriteLine(v1);
// Summing using the Sum method.
double v2 = 615.0;
v2 += values.Values.Sum();
Console.WriteLine(v2);
Console.ReadLine();
}
当我看着它给人的615.01699999999994值调试器V1的价值,但对于V2它给人的615.017值。 出于某种原因,数总和法得出准确的结果,而对它们求和迭代没有。 (当我打印两个值它们是相同的,但我相信这是由于一些舍入WriteLine方法一样。)
任何人都知道这是怎么回事?