我有點堅持了這個問題:C++雙斜面等於兩個int師
int a = 5, b = 2;
double c = a/b;
cout << c;
此輸出:
2
爲什麼?
我可以通過使用通過此:
double aa = a,
bb = b;
c = aa/bb;
此輸出:
2.5
幫助! :(
我有點堅持了這個問題:C++雙斜面等於兩個int師
int a = 5, b = 2;
double c = a/b;
cout << c;
此輸出:
2
爲什麼?
我可以通過使用通過此:
double aa = a,
bb = b;
c = aa/bb;
此輸出:
2.5
幫助! :(
在C++語言,兩個整數值之間的任何算術運算將返回一個int值。所述不同地,整數除法。 是歐幾里德師。而只有這樣,整數值澆鑄爲雙。
如果你想有一個雙操作,你必須強制師雙值進行操作,通過鑄造一個操作數增加一倍,或乘以1.0
這是一個雙倍常數:
double c = 1.0 * a/b;
或
double c = static_cast<double>(a)/b;
提示:C++有不同種類的劃分。在任何給定的上下文中完成的分割類型取決於兩個操作數的類型,在這種情況下爲a和b。 – Waxrat
它輸出2,因爲b是一個整數。數學是作爲一個整數完成,然後轉換爲雙精度。 – drescherjm