c - 返回 1.0f 给我 1065353216

标签 c floating-point

我有一个返回 float 类型的 C 函数。

当函数返回 1.0f 时,接收方看到的是 1065353216,而不是 1.0

我的意思是,以下内容:

float Function()
{
    return 1.0f;
}

float value;
value = Function(); 
fprintf(stderr, "Printing 1.0f: %f", value);

显示:

1065353216

但不是:

1.0

最佳答案

您在一个源文件中定义您的函数并从另一个未提供签名的源文件中调用它,使编译器认为签名是 int Function(),这会导致奇怪的结果。

您应该在 printf 所在的文件中添加签名:float Function();

例如:

float Function();
float value;
value = Function(); 
fprintf(stderr, "Printing 1.0f: %f", value);

关于c - 返回 1.0f 给我 1065353216,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6823646/

相关文章:

FPU与软件仿真的性能对比

从左边开始计算连续的 1 位的个数

php - 如何执行MySQL 'SUM'但到 '0'小数位?

c++ - long long int 类型函数返回十进制值

python 2.7 : round a float up to next even number

python - numpy.allclose() 比较数组和 float

c - 函数 fmax 的隐式声明

C--程序未正确读取文件结尾

c - 如何在c中打印内存位

统计单词出现次数