2017-06-16 78 views
-4

我不明白這個代碼數精度C++

double f(int a, double b){return a+b;} 
int f(int c, int d){return c-d;} 

int main() { 
    int i = f(1,2.1F); 
} 

是什麼2.1F是什麼意思?我認爲這是精確的,將被調用的函數將是int f。但是我錯了。它會調用double f,爲什麼?非常感謝你。

+3

參見例如[此浮點參考](http://en.cppreference.com/w/cpp/language/floating_literal),閱讀有關*後綴*的部分。 –

回答

1

f(或F)後綴使得字面一個float - 這傾向於要轉換爲double作爲轉化爲int會截斷它。

0

cppreference涵蓋了數字升級和轉換之間的區別。