IMI*_*IMI -1 c++ floating-point for-loop
首先让我说我已经检查了相关的主题,问题是我想制作一个带小数步长的for循环我已经准备了波纹管代码来解决这个问题,但它没有生成准确的数字与提到的步长
float b;
for ( double a=-0.2; a<=0.2 ; a+=0.01)// a = landa with an increment of 0.1
{
b = a * 100.0;
a = ((int)b) / 100.0;
}
Run Code Online (Sandbox Code Playgroud)
我想要的是在每次迭代中都有一个准确的数字,但是因为变量被定义为一个双倍,它接近它必须的值.( - 0.20000000001,-0.19000000002,....)请告诉我怎么能我解决了这个问题&代码有什么问题?
Pau*_*l R 14
代替:
for (double a = -0.2; a <= 0.2; a += 0.01)
{
...
}
Run Code Online (Sandbox Code Playgroud)
使用整数循环索引并计算循环内的相应浮点值,例如
for (int i = -20; i <= 20 ; ++i) // a = -0.2 to 0.2 step 0.01
{
const double a = i / 100.0;
...
}
Run Code Online (Sandbox Code Playgroud)