【问题标题】:How to fix C function giving wrong summation values如何修复 C 函数给出错误的总和值
【发布时间】:2019-04-10 17:00:04
【问题描述】:

我做了一个简单的加法函数,但是得到了错误的求和值,对不起,如果它是一个幼稚的东西。但真的很想知道为什么会这样。我想要一个替代解决方案。提前致谢!

我正在使用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

【问题讨论】:

标签: c addition


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多