解决C语言自带pow函数整型数值误差

发布于 2022-10-20  669 次阅读


众所周知,浮点数在计算机中存储的方式就导致它在通过整型输出的情况下会直接将数据截断,出现1的误差

解决这种问题我采用了一个相当笨拙的方式

既然自带的pow函数以浮点数为基础导致误差,我为什么不去自定义一个以整型为基础的pow函数呢?

于是pow2便应运而生

int pow2(int x,int y)
{
    int n=1;
    while(y)
    {
        n *= x;//当y=-1时停止循环
        y--;//n的值恰好为y个x相乘
    }
    return n;
}

很蠢的办法,但很有效(笑)