如何循环并每次增加0.01?

Joh*_*gan 3 c loops

我对这段代码感到很困惑.

这就是我想要它做的事情:从"v"值5开始,执行其余的函数/计算,将"v"值增加0.01,执行函数/计算,然后增加"v"将值再次设置为0.01,执行这些功能...执行此操作500次或直到达到10.00的"v"值,以较容易编码为准.

这是我目前的代码:

//start loop over v  
for(iv=5;iv<=500;iv++) {  
    v=0.01*iv;
    //Lots and lots of calculations with v here
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的:我尝试设置iv <= 10所以它只做了10个循环,所以我可以先测试它,然后整晚离开它.它只做了6个循环,从v = 0.05开始到0.1结束.所以问题是a)它没有运行10个循环,b)它没有从5.00开始,它从0.05开始.

任何帮助,将不胜感激.

编辑:神圣的废话,这么多的答案!到目前为止,我已经尝试了两个不同的答案,两者都有效!我一直在盯着这个并且改变代码3个小时,简直不敢相信.

lij*_*jie 7

你需要从头开始iv = 500.如果你想要10个循环,并且iv++是更新,那么你就停止了510.

原因:v = 0.01*iv所以v = 5意味着iv = 5/0.01 = 500.至于迭代次数,如果你的for循环是形式for (x = N; x < M; x++)(常量NM),那么max(0, M-N)循环被执行,如果循环中x没有改变并且没有奇怪的东西(例如溢出,隐藏的负数转换为无符号等等). )发生.

编辑

而不是使用v = 0.01 * iv,v = iv / 100.0可能更准确.原因:0.01在浮点时不能完全表示,但100.0是.