1

c#でのキャストの優先順位は? たとえば、次のコードでは、z は 2 以下でしょうか?

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

3 に答える 3

3

キャストは、バインディングのすべての二項演算子より優れています。したがって、(int)x / y は ((int)x)/y を意味します。

一方、賢いコードよりも読みやすいコードを常に優先する必要があるため、代わりに次のように記述する必要があります。

((int)x) / y

括弧は無料で、コードを読みやすくすることに注意してください。

于 2013-02-12T04:03:30.380 に答える
1

未満:

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

于 2013-02-12T04:02:02.483 に答える
1

zは 2 未満になります。

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

あなたのコードは実際にこれを行っています: ((int)x) / y、これは期待される出力である場合とそうでない場合があります。

于 2013-02-12T04:03:28.657 に答える