为什么除法的结果在C#中自动为int?

时间:2016-07-11 12:25:42

标签: c#

我有这一行:

Console.WriteLine((double)(1 / 4)));

输出:0

我调试了它,编译器将1 / 4视为0:

compiler converts 1 / 4 to 0

据我了解,编译器将1 / 4视为int。但为什么?

注意:当我写这行时:

Console.WriteLine((double)1 / 4));

输出:0.25

2 个答案:

答案 0 :(得分:4)

因为14都是int。编译器没有理由进行类型转换。运行此示例并查看输出:

int x = 1, y = 4;

Console.WriteLine(x / y);

double xx = 1;
Console.WriteLine(xx / y);

double yy = 4;
Console.WriteLine(x / yy);

答案 1 :(得分:1)

如果您将int除以int,则会得到int

如果您想要double作为结果,则至少需要一个double参数。 指定double的简短方法是在数字

之后设置.0
Console.WriteLine(1 / 4.0);
Console.WriteLine(1.0 / 4);

这将被解释为double