为什么下面的程序输出结果老为0.00(将二进制0.101转换为十进制)

2025-03-11 07:38:41
推荐回答(1个)
回答1:

#include 
#include 

int main()
{
    int i, n, N;
    double A, B, C, D, sum;
    sum = 0;
    A = 0.101;
    for (n = 1, i = 1; n < 4; n++, i++)
    {
        A = A * 10;
        N = (int)A;
        B = N % 10;
        D = pow(2, i);
        C = B / D;
        sum = sum + C;
    }
    printf("%lf", sum);
}