我有一个循环在给定的最小和最大范围之间循环一个浮点数,如下所示
#include <iostream>
using namespace std;
void main(void)
{
for (double x=0.012; x<=0.013; x+=0.001)
{
cout << x << endl;
}
}
这是非常简单的代码,但正如我在计算机语言中所知道的那样,我们需要将两个浮点数与 EPS 进行比较。因此,上面的代码不起作用(我们希望它从 0.012 到 0.013 循环两次,但它只循环一次)。所以我手动将EPS添加到上限。
#include <iostream>
using namespace std;
#define EPS 0.0000001
void main(void)
{
for (double x=0.012; x<=0.013+EPS; x+=0.001)
{
cout << x << endl;
}
}
现在可以了。但是手动做这件事看起来很难看,因为 EPS 应该真的取决于机器。我正在将我的代码从 matlab 移植到 C++,并且我在 matlab 中没有问题,因为有 eps 命令。但是在 C/C++ 中有类似的东西吗?