了解 C 中的浮点比较
在比较 C 中的浮点值时,重要的是要意识到由于其精度有限。在提供的代码片段中,当将浮点数 a 和 b 分别与常量 0.7 和 0.5 进行比较时,观察到意外输出“1 is right”。
意外输出的原因:
出现此问题的原因如下原因:
分辨率:
要获得预期输出,您可以:
具有预期输出的代码:
int main() { double a = 0.7; double b = 0.5; if (a < 0.7) { if (b < 0.5) printf("2 are right"); else printf("1 is right"); } else printf("0 are right"); }
在此更正的代码中,a 和 b 的比较它们各自的双精度确保准确的精度,从而产生预期的输出“0 是正确的。”
以上是为什么在 C 中比较浮点数有时会产生意外的结果?的详细内容。更多信息请关注PHP中文网其他相关文章!