在下面的代码中,为什么编译器将结果变量计算为 3(整数)而不是 3.5(浮点或 double )?
void Main()
{
var result = 7/2;
Console.WriteLine(result);
}
谢谢
最佳答案
因为,如果将一个 int
除以另一个,结果是一个 int
。这是指定的 here .
When you divide two integers, the result is always an integer. For example, the result of
7 / 3
is2
.
然后 var
只使用表达式类型来创建一个 int
因为这就是您告诉它您想要的(尽管是隐含的)。如果你想要一个double
,你需要强制表达式的类型为double:
var result = 7.0 / 2;
或者,如果您使用 int
变量 而您不能只添加 .0
:
int seven = 7;
int two = 2;
var result = (double)seven / two;
关于c# - 为什么 var 评估为 int 而不是 double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27438349/