为什么gcc编译器输出pow(10,2)为99而不是100?

时间:2014-08-24 17:27:32

标签: c++ gcc

#include <iostream.h>
#include <math.h>
int main()
{
    int j=2;
    int output;
    output=pow(10,j);
    cout<<output;
    return 0;
}

我将上面的代码写入gcc 12编译器并获得输出99而不是100.我在搜索各种网站时没有得到正确的理由。有编译器问题吗?

1 个答案:

答案 0 :(得分:8)

由于整数截断。 pow()返回一个浮点值,由于浮点运算,它可能是〜99.999...;但是,由于整数截断,偶数99.999...会被截断为99。