繁体   English   中英

算术运算得出错误结果

[英]Arithmetic operation gives incorrect result

我可能在这里错过了一些非常基本的东西。 但是我不知道该怎么办。 当我将T设置为10并将dt设置为0.1时,我应该得到结果101,但我得到的结果是100。为什么会这样?

n_sim_steps = (int)(T/dt) + 1

此外,如果我将其作为日食手表执行,则返回101,但在代码中返回100。

它应该是

n_sim_steps = (int)(T/dt + 0.5) + 1

您是失去精确性的受害者

由于此损失, 10 / 0.1可能是99.999999999999 ,并且可能会被强制转换回int99 添加0.5 ,然后进行强制转换将确保结果是四舍五入的。

您最好使用ceil函数。

功能签名

double ceil (double x);

像ceil(2.3)会得到3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM