2017-06-16 11 views
-4

私はこのコードを理解していない数精度

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になります。しかし、私は間違っていました。それはなぜダブルfを呼び出すでしょうか?どうもありがとうございました。 intへの変換としてdoubleに変換することを好むそれを切り捨てることになる -

+3

[この浮動小数点リファレンス](http://en.cppreference.com/w/cpp/language/floating_literal)については、*接尾辞*の節を読んでください。 –

答えて

1

f(又はF)接尾リテラルfloatが行います。

0

cppreferenceは、数値昇格と変換の違いをカバーしています。