int c;
int f = 20;
c = 5 / 9 * (f - 32);
Console.WriteLine(c);
Console.ReadLine();
如果我运行这段代码,c的结果是0,这是错误的。有人可以告诉我为什么吗?
int c;
int f = 20;
c = 5 / 9 * (f - 32);
Console.WriteLine(c);
Console.ReadLine();
因为您的计算正在使用整数类型。我相信c
是双精度类型变量。
c = 5d / 9 * (f - 32.0);
使用 32.0
或 32d
以使其中一个操作数为 double
,对于 5/9
也同样如此。
另外,你需要将 c
定义为 double 类型。
5 / 9
c
更改为浮点数或双精度浮点数,您可以采取以下措施:c = (int)Math.Round(5.0 / 9.0 * (f - 32.0));
5 / 9
仍然会是零。 - RawlingDouble
结果放入已声明为int
的c中。将会发生截断并且问题将返回。 - OrenC
被定义为双精度。 - Habib