【发布时间】:2021-02-11 14:01:20
【问题描述】:
double a;
a = 3669.0;
int b;
b = a;
我在 b 中得到 3668,而不是 3669。
我该如何解决这个问题? 如果有这样的 3559.8,我也想要 3559 而不是 3560。
【问题讨论】:
-
这很有趣。
3669.0完全可以用浮点数表示... -
@Mysticial:嗯,是的,该数字应该以浮点格式存储为 3669。也许是编译器的问题。
-
3668.51 也应该映射到 3669 吗? (您是要四舍五入,还是只是截取非常接近的数字?)
-
代码是个谎言。 OP 有一个复杂的计算,他认为会导致
3669.0,但实际上导致的结果略少。 -
我运行这个并在 b 中得到 3669。这是结果 [链接]ideone.com/yWT5G
标签: c