小编Cha*_*yan的帖子

为什么scanf对大浮点数输错了?

#include <stdio.h>

int main() { 
float k;
    scanf("%f", &k);
    printf("%f", k);
} 
Run Code Online (Sandbox Code Playgroud)

在这个简单的程序中,当我输入一个包含最多8位数的数字时,它会正确显示.

但如果我超过8位,即输入123456789输出123456792.

为什么会这样?那么有趣的事实是,如果我输入的任何数字,123456789并且123456796然后它总是显示123456792.

它是否与浮点数的8位小数精度有关?

c floating-point gcc scanf

-1
推荐指数
1
解决办法
472
查看次数

标签 统计

c ×1

floating-point ×1

gcc ×1

scanf ×1