C# double 没有按预期工作

C# double not working as expected

我知道双精度是小数。 在下面的程序中,输出是 1,尽管我认为它会重复 1.05。

static void Main (string[] args)
{
double d = 19 / 18;
Console.WriteLine(d);
Console.ReadKey();
}

我是不是理解错了?

你误解了整数数学。

Integer-19 / Integer-18 results in an Integer with value 1.

(您将值分配给双精度无关。计算结果为整数)。

要修复它,请使用:

double d = 19.0 / 18.0;