c - 在 C 中编写函数时返回浮点值

标签 c floating-point

我正在用 c 编写一个简单的函数,它将返回 2 个浮点值的中间值。

我的函数如下所示:

float mid(float a, float b) {
      return (a + b)*0.5; 
}

问题是这个函数总是产生 0.000000。我正在使用以下方法检查:

printf("%f", mid(2,5))

这将打印 0.000000。

但是,如果我这样做:

printf("%f", (2+5)*0.5) 

这将打印 3.5,这是正确的。

我该如何解决这个问题?

最佳答案

功能不错。例如,这个小片段输出正确。

#include <stdio.h>
#include <string.h>

float mid(float a, float b);     //declaration here

int main(void)
{
    printf("%f\n", mid(2,5));
    return 0;
}
float mid(float a, float b) {
      return (a + b)*0.5;
}

你可能遇到的问题是,你没有像我一样添加mid()的声明,编译器认为它返回隐式int,这导致问题。

关于c - 在 C 中编写函数时返回浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26248208/

相关文章:

c - 内联函数

c - 地址值消失

c# - 是否有一个任务调度程序非常适合在具有超线程的处理器上进行浮点计算?

c - 如何将 "float"变量分解为四个字节?

c++ - 浮点加法向上舍入

c++ - 由于 memcpy 问题,无法使用 VS 进行优化编译;被视为内在函数

c - 旧 C 代码需要左值作为增量操作数错误

输入变量的类型冲突?我的功能使用得当吗?

c - Simd matmul程序给出不同的数值结果

c - MPIR 的浮点类型不准确吗?