【发布时间】:2019-06-29 03:14:57
【问题描述】:
这是在测试期间出现的,我必须比较实际输出和预期输出之间的值。
代码:
float nf = 584227.4649743827f;
printf("Output: \t %.9f \n", nf);
输出:
Output: 584227.437500
我在 C 方面的知识显然存在一些差距,所以有人可以向我解释一下这种情况:
- 为什么打印中会出现这种偏差 (
0.027474382659420f)? - 这只是print的限制,还是float数据类型的限制?
- 变量
nf中实际存储了哪个值? - 我应该如何使用这样的值,这样我才不会丢失诸如在分配过程中出现
0.027474382659420f偏差之类的信息。
任何其他与测试中此类问题相关的建议也将非常受欢迎。
【问题讨论】:
-
@Groo 这不是一个真正的骗子,但你建议的链接无论如何都值得一读。
标签: c unit-testing floating-accuracy