C#中的算术运算

Wac*_*urn 2 .net c#

为什么我的C#代码返回0,如果它必须是50?

double c = (1 / 2) * 100;
Console.WriteLine(c); 
Run Code Online (Sandbox Code Playgroud)

怎么了?

Dam*_*ver 5

1,2并且100,在你的例子,都是int文字.在C#中,整数除法返回整数,并忽略余数.只有在计算1/2(= 0)并乘以100(= 0)后,结果才会转换为double

(1.0/2) * 100
Run Code Online (Sandbox Code Playgroud)

会给出预期的结果,因为现在1.0是一个double文字,并且double在执行计算之前强制将其他文字转换为s.