c#中强制转换的优先级是什么?例如在下面的代码中,z 是否会小于或等于 2?
double x = 4.5;
double y = 2.1;
double z = (int) x / y;
演员在绑定方面击败了所有二元运算符。因此 (int)x / y 表示 ((int)x)/y。
另一方面,你应该总是更喜欢可读的代码而不是聪明的代码,所以既然你不知道你应该写下面的代码:
((int)x) / y
请注意,括号是免费的,并使您的代码更具可读性。
少于:
using System;
public class Test
{
public static void Main()
{
double x = 4.5;
double y = 2.1;
double z = (int) x / y;
Console.WriteLine(z);
}
}
见这里:http: //ideone.com/fhg5ai
z
将少于两个:
double x = 4.5;
double y = 2.1;
double z = (int) x / y;
Console.WriteLine(z); //1.9047619047619
您的代码确实在执行此操作:((int)x) / y
,这可能是您的预期输出,也可能不是。