c#中强制转换的优先级是什么?例如,在以下代码中,z是否小于或等于2?
double x = 4.5;
double y = 2.1;
double z = (int) x / y;
答案 0 :(得分:3)
该演员击败所有二元运算符进行绑定。因此(int)x / y表示((int)x)/ y。
另一方面,您应该始终优先选择可读代码来聪明的代码,因为您不知道应该编写以下代码:
((int)x)/ y
请注意,括号是免费的,并使您的代码更具可读性。
答案 1 :(得分:0)
小于:
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);
}
}
答案 2 :(得分:0)
z
将少于两个:
double x = 4.5;
double y = 2.1;
double z = (int) x / y;
Console.WriteLine(z); //1.9047619047619
您的代码实际上是这样做的:((int)x) / y
,可能是您预期的输出,也可能不是。