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
は 2 未満になります。
double x = 4.5;
double y = 2.1;
double z = (int) x / y;
Console.WriteLine(z); //1.9047619047619
あなたのコードは実際にこれを行っています: ((int)x) / y
、これは期待される出力である場合とそうでない場合があります。