C#double没有按预期工作

C# double not working as expected

本问题已经有最佳答案,请猛点这里访问。

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

1
2
3
4
5
6
static void Main (string[] args)
{
double d = 19 / 18;
Console.WriteLine(d);
Console.ReadKey();
}

我误会了吗?


你误解了整数数学。

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

(将值赋给double与此无关。计算结果为整数)。

要修复它,请使用:

1
double d = 19.0 / 18.0;