float和int相加时结果错误
Wrong addition result when adding float and int
我遇到了一个非常不寻常的问题,这可能只是来自新手 C 语言学习者的错误代码。我正在努力处理以下代码。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv) {
float a = 1587128832.000000;
int d = 1587128898.000000;
float f = a + d ;
printf("%f\n", f);
return 0;
}
下面的代码输出 3174257664.000000
而 google says that the result should be 3174257730.
我正在尝试添加带有 int
的 float
/double
,结果却很奇怪。
那我到底做错了什么?
我不认为该错误实际上是混合数据类型的问题,因为 C 应该将 int
s 转换为 float
s。
float 无法准确保存这样的数字。
即。 https://www.h-schmidt.net/FloatConverter/IEEE754.html
如果你想要准确的结果,你需要更多的内存 -> 使用 double
。
我遇到了一个非常不寻常的问题,这可能只是来自新手 C 语言学习者的错误代码。我正在努力处理以下代码。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv) {
float a = 1587128832.000000;
int d = 1587128898.000000;
float f = a + d ;
printf("%f\n", f);
return 0;
}
下面的代码输出 3174257664.000000
而 google says that the result should be 3174257730.
我正在尝试添加带有 int
的 float
/double
,结果却很奇怪。
那我到底做错了什么?
我不认为该错误实际上是混合数据类型的问题,因为 C 应该将 int
s 转换为 float
s。
float 无法准确保存这样的数字。
即。 https://www.h-schmidt.net/FloatConverter/IEEE754.html
如果你想要准确的结果,你需要更多的内存 -> 使用 double
。