#include <iostream>
using namespace std;
int main(){
double x1=9.0;
double x2=10.0;
while (0.1 < (x2-x1)){
x2=x2-0.1;
}
cout << x1 << " " << x2 << endl;
system("pause");
}
按照您的建议,改了判断,但结果仍是依旧。
将x1, x2定义为float类型,最后的输出是: 9, 9.1
而将x1, x2定义为double类型, 最后的输出是: 9, 9
为什么?
应该用 x1+0.1-x2 <0.00001. 假设5 位精度足够的话。