我对这段代码感到很困惑.
这就是我想要它做的事情:从"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个小时,简直不敢相信.
你需要从头开始iv = 500.如果你想要10个循环,并且iv++是更新,那么你就停止了510.
原因:v = 0.01*iv所以v = 5意味着iv = 5/0.01 = 500.至于迭代次数,如果你的for循环是形式for (x = N; x < M; x++)(常量N和M),那么max(0, M-N)循环被执行,如果循环中x没有改变并且没有奇怪的东西(例如溢出,隐藏的负数转换为无符号等等). )发生.
编辑
而不是使用v = 0.01 * iv,v = iv / 100.0可能更准确.原因:0.01在浮点时不能完全表示,但100.0是.
| 归档时间: |
|
| 查看次数: |
1067 次 |
| 最近记录: |