首页 > 解决方案 > 如何找到浮点数的余数?

问题描述

long long convert(float n) {
    long long result = 0;
    float rem, i = 1, step = 1,c = 2.0;
    while (n != 0) {
        rem = fmod(n,c);
        n /= 2;
        result += rem * i;
        i *= 10;
        printf("Step %.0f: %f/2, Remainder = %.0f, Quotient = %f\n", step++, 2*n, rem, n );

    }
    return result;
}
int main() {
    float n,a;
    printf("Enter a number: ");
    scanf("%f", &n);
    printf("enter a number:");
    scanf("%f",&a);
    n = pow(n,a);
    printf("%f in decimal = %lld in binary", n, convert(n));
    return 0;
}

我想用二进制写分数指数十进制数,但我无法正确计算,我得到了荒谬的结果。

我想得到这样的结果,n = 5 a = 5/8 result = 101.101

2.828427 in decimal = -9223372036854775808 in binary
Process returned 0 (0x0)   execution time : 4.454 s
Press any key to continue.`

标签: c

解决方案


推荐阅读