在C中使用带有整数的pow()函数

问题描述 投票:-5回答:1

我有以下代码:

#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时发生这种事件。为什么?

c
1个回答
1
投票

Pow是double的功能,而不是integer。因此,它具有小的舍入误差,并且可能计算99.999999996375左右。将其分配给int时,会丢失小数点后面的所有数据。

使用双精度值,打印双打(”%lf”),它会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.