【问题标题】:Why is this program truncating numbers?为什么这个程序会截断数字?
【发布时间】:2017-02-21 01:26:37
【问题描述】:

所以,我打算向我的 gf 介绍一下 C 编程,但在我为它编写一个程序时出现了这个问题。 这是程序:

    #include<stdio.h>  

float sum(x,y) {
        float u = x+y;
        return u;
    }

    int main(void) {
        float x = 30.134;
        float y = 392.133;
        float z = sum(x,y);
        printf("%f \n",z);
    }

问题是,当我运行这个程序时,它返回 422.000000,而不是正确的结果 422.267000。我不明白:如果我在这里没有使用任何“int”,为什么程序会截断结果?我一直认为如果数字是浮点数或双精度数,程序将截断数字,声明为整数。但我不清楚为什么程序会截断这里的数字。谢谢。

【问题讨论】:

    标签: c debugging truncated


    【解决方案1】:

    旧 C 中的默认类型是 int。如果您希望按自己的方式输入参数,则需要正确声明参数:

    float sum(float x, float y)
    //        ^^^^^    ^^^^^
    

    【讨论】:

    • 天哪。我完全忘记了这个细节。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多