#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.我在搜索各种网站时没有得到正确的理由。有编译器问题吗?
答案 0 :(得分:8)
由于整数截断。 pow()
返回一个浮点值,由于浮点运算,它可能是〜99.999...
;但是,由于整数截断,偶数99.999...
会被截断为99。