Ale*_*See 1 c++ floating-point floating-accuracy
我想迭代一系列浮点数,例如在下面的例子中.
for (double d = 1.0; d <= 2.0; d += 0.1)
{
cout << d << endl;
}
Run Code Online (Sandbox Code Playgroud)
因为不可能准确地表示0.1,所以不打印2.0的最后一个值.
如何确保不会省略此情况和类似情况中的最后一个值?
jua*_*nza 11
循环整数,除以浮点数:
#include <iostream>
#include <iomanip>
int main()
{
std::cout << std::setprecision(1) << std::fixed;
for (int d = 10; d <= 20; ++d)
{
std::cout << d/10. << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
Run Code Online (Sandbox Code Playgroud)