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

时间:2019-04-10 17:00:05

标签: c addition

我做了一个简单的加法函数,但是求和值错误,如果要查找是天真的事情,对不起。但真的想知道为什么会这样。我想要一个替代解决方案。预先感谢!

我正在使用notepad ++编写代码,并在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 window showing execution result as 2778.006104

1 个答案:

答案 0 :(得分:0)

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