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 最终为 0,这是错误的。谁能告诉我为什么?
因为您的计算是以整数类型进行的。我相信c
是双类型变量。
c = 5d / 9 * (f - 32.0);
使用32.0
or32d
这样的操作数之一是double
,也对 . 执行相同的操作5/9
。
您还需要定义c
为双精度。
问题出在下面一行;
5 / 9
因为 c 和 f 是整数。例如,如果我让你将 11 除以 10;你会告诉我结果是 1.1。假设您不了解浮点运算,那么您会说要么不能将 11 除以 10;要么 或者你会说它是 1。运行时环境也是如此,它说它是 0,因为你声明了一个整数。
哈比卜已经解释了正在发生的事情。如果您不想更改c
为浮点数或双精度数,可以执行以下操作:
c = (int)Math.Round(5.0 / 9.0 * (f - 32.0));