如何修复给出错误求和值的 C 函数



我做了一个简单的加法函数,但得到错误的求和值,抱歉,如果这是一件幼稚的事情。但真的想知道为什么会这样。我想要一个替代解决方案。提前感谢!

我正在使用记事本++编写代码,并在Windows命令提示符下使用gcc编译器来执行代码。


#include <stdlib.h>
#include <stdio.h>
float addit(float num1, float num2)
    {
        float sumit;
        sumit = num1 + num2;
        return sumit;
    }
int main()
{
    float num1, num2;
    float answer = 0.000000;
    printf("Enter first number: ");
    scanf("%f", &num1);
    printf("Enter second number: ");
    scanf("%f", &num2);
    answer = addit(num1, num2);
    printf("The summation is: %f", answer);
    return 0;
}

添加 2345.34 和 432.666 的预期输出为 2778.006。但是,执行后它显示 2778.006104。

Windows cmd 窗口显示执行结果为 2778.006104

欢迎来到浮点值的奇妙世界!考虑一下:在 0 到 1 之间,有无限多个数字。有0.1,有0.01,有0.001,依此类推。但是计算机没有无限的空间,那么我们应该如何存储数字呢?我们的解决方案是限制我们存储的数字的精度。正如其他人所提到的,java的浮点数据类型只有6或7位精度(以10为基数(。因此,您不一定能保证对浮点数进行数学运算的结果是 100% 准确的。您只能确定结果的前 6-7 位数字将是。

最新更新