小编Xet*_*t46的帖子

当浮点数是函数的实参时,为什么我的计算机会随意更改浮点数末尾的十进制数字?

我试图满足这个问题:编写一个函数 print_dig_float(float f) 来打印浮点数 f 的每个数字的值。例如,如果 f 是 2345.1234,则 print_dig_float(f) 将连续打印数字 2、3、4、5、1、2、3 和 4 的整数值。

我所做的是:给定一个带小数的数字,我尝试将数字向左移动(例如:3.45 -> 345),将其乘以 10。之后,我通过取余数将每个数字存储在一个数组中,然后把它放在一个元素中。然后,我将它们打印出来。

所以我的程序是这样的:

#include <stdio.h>

void print_dig_float(float f);

int main(int argc, char const *argv[]) {

    print_dig_float(23432.214122);

    return 0;
}

void print_dig_float(float f) {

    printf("%f\n", f);

    int i = 0, arr[50], conv;

    //move digits to the left

    do {

        f = f * 10;
        conv = f;
        printf("%i\n", conv);

    } while (conv % 10 != 0);

    conv = f / 10;

    //store digits in …
Run Code Online (Sandbox Code Playgroud)

c floating-point

2
推荐指数
1
解决办法
71
查看次数

标签 统计

c ×1

floating-point ×1