在下面的代码中,为什么编译器将结果变量评估为3(整数)而不是3.5(浮点数或双精度数)?
void Main()
{
var result = 7/2;
Console.WriteLine(result);
}
谢谢
因为,如果将int
彼此相除,结果将是int
。在这里指定。
当您将两个整数相除时,结果始终是整数。例如,的结果
7 / 3
为2
。
然后var
仅使用表达式类型创建一个,int
因为这就是您所要的(尽管是隐式的)。如果需要a double
,则需要将表达式的类型强制为double:
var result = 7.0 / 2;
或者,如果您使用的int
变量不仅仅局限于.0
:
int seven = 7;
int two = 2;
var result = (double)seven / two;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句