是否一個浮點數據類型(例如double
)的存在確保所有+, - ,*,/,%等數學運算假設雙操作數?是否有一個雙重提升方程中的每個整數?
如果故事比這更復雜,是否有描述這些規則的資源?我不應該問這樣的問題,並且當方程的結果是double
時,總是明確地投下int
到double
。以下是我正在考慮的一些等式。我故意沒有在我的系統上編譯和運行,因爲這是可能依賴於編譯器的東西。
int a(1), b(2), c(3);
double d(4.);
double result1 = a + b/d + c; // equal to 4 or to 4.5?
double result2 = (a + b)/d + c; // equal to 3 or to 3.75?
double result3 = a/b + d; // equal to 4 or to 4.5?
考慮操作的順序。如果需要,每個操作都會促進。 – JCooper
明白了,所以每個操作都有兩個操作數(大部分),如果一個是'float'而另一個是'int',那麼'int'會被提升爲float。 –
@LexFridman是的,類似的東西。 – 2012-12-01 20:46:54