c#中强制转换的优先级

时间:2013-02-12 03:57:03

标签: c# operators

c#中强制转换的优先级是什么?例如,在以下代码中,z是否小于或等于2?

double x = 4.5;
double y = 2.1;
double z = (int) x / y;

3 个答案:

答案 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);
    }
}

见这里:http://ideone.com/fhg5ai

答案 2 :(得分:0)

z将少于两个:

    double x = 4.5;
    double y = 2.1;
    double z = (int) x / y;
    Console.WriteLine(z); //1.9047619047619

您的代码实际上是这样做的:((int)x) / y,可能是您预期的输出,也可能不是。