求索爲C#和Java以下,C#和Java:3/2 * 3.2 = 3.2,爲什麼?
double d = 3/2 * 3.2;
的Java
System.out.println(d); // 3.2
C#
Console.WriteLine(d); //3.2
它跳過3/2,
我們知道正確答案應該是4.8
如果我改變
double d = 3.00/2 * 3.2;
我可以得到4.8,
所以我要問,如果(3/2 * 3.2)是非法的,爲什麼Eclipse和VS2008有沒有錯誤? 如何在C#和Java中防止這個問題?
乘法交際與分工,不管你使用的「真正的」數學或沒有。它在任何地方都沒有更高的優先級。 – 2009-09-06 12:24:03
-1:此計算中的操作通常是從左到右計算的。請參閱:http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B – 2009-09-06 12:26:50
我認爲這裏的混淆來自乘法通常出現在代數分子或分母內的事實。或者PEMDAS。 – snarf 2009-09-06 12:27:37