价值得不到正确答案

时间:2013-01-21 11:38:57

标签: c#

int c;
int f = 20;
c = 5 / 9 * (f - 32);
Console.WriteLine(c);
Console.ReadLine();

如果我运行此代码c最终为0,这是错误的。谁能告诉我为什么?

3 个答案:

答案 0 :(得分:8)

因为您的计算是在整数类型中完成的。我相信c是双重型变量。

c = 5d / 9 * (f - 32.0);

使用32.032d以便其中一个操作数为double ,同样对5/9执行相同操作。

同样您需要将c定义为double。

答案 1 :(得分:3)

问题出在以下几行;

5 / 9

因为c和f是整数。 例如,如果我要求你将11分为10分;你会告诉我结果是1.1。假设你不知道浮点运算,那么你会说不可能将11除以10;或者你会说它是1.运行时环境也是如此,它表示它是0,因为你声明了一个整数。

答案 2 :(得分:1)

哈比卜已经解释了发生了什么。如果您不想将c更改为浮点数或双精度数,则可以执行以下操作:

c = (int)Math.Round(5.0 / 9.0 * (f - 32.0));