我有以下代码:
#include <stdio.h>
int main(){
int power, n = 3;
power = pow(10, n - 1);
printf("power is %d", power);
return 0;
}
输出为99.但它应该是100.当n = 3,5或8时发生此事件。为什么?
答案 0 :(得分:1)
Pow是double
函数,而不是int
eger。因此,它具有小的舍入误差,并且可能计算99.999999996375左右。当您将其分配给int
时,您将丢失小数点后面的所有数据。
为您的值使用双打,并打印双打(”%lf”
),它会起作用。