<分区>
#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。我在各个站点上搜索时没有得到正确的原因。编译器有问题吗?
<分区>
#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。我在各个站点上搜索时没有得到正确的原因。编译器有问题吗?
最佳答案
因为整数截断。 pow()
返回一个浮点值,由于浮点运算,它可能是 ~ 99.999...
;然而,由于整数截断,甚至 99.999...
也会被截断为 99。
关于c++ - 为什么 gcc 编译器将 pow(10,2) 输出为 99 而不是 100?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25474351/