C ++中的数字精度

时间:2017-06-16 10:01:13

标签: 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。但是我错了。它会调用双f,为什么?非常感谢你。

2 个答案:

答案 0 :(得分:1)

f(或F)后缀使文字为float - 由于转换为double会将其截断为int,因此优先将其转换为from foo import *

答案 1 :(得分:0)

cppreference涵盖了数字宣传和转化之间的区别。