循环练习的C++ 下面你可以找到一个带有循环for的基本C++练习,问题是:循环运行后i的值是什么。显然,这个值是5
我的问题是,在第5次运行i=5时,a的值是100,循环是否应该停止,因为条件是a,如果不知道平台上浮点实现的细节,您就无法确切地告诉此代码将发生什么;C++标准使这个有意义地灵活。 本质上,0.01可能是最接近该双精度文字的浮点值的近似值。因此,提前或以其他方式满足停止条件a<1e2 请注意,与0.01一起,1e1是double类型的文本 因此,向浮动的转换使事情更加复杂。然后考虑浮点的严格性。循环练习的C++ 下面你可以找到一个带有循环for的基本C++练习,问题是:循环运行后i的值是什么。显然,这个值是5,c++,for-loop,C++,For Loop,我的问题是,在第5次运行i=5时,a的值是100,循环是否应该停止,因为条件是a,如果不知道平台上浮点实现的细节,您就无法确切地告诉此代码将发生什么;C++标准使这个有意义地灵活。 本质上,0.01可能是最接近该双精度文字的浮点值的近似值。因此,提前或以其他方式满足停止条件a
长话短说:不要使用浮点数作为循环中的索引。本练习旨在说明浮点和双精度等,浮点数通常没有程序文本中所示的精确十进制值 0.01十进制无法用所用的二进制浮点格式精确表示,因此,将10乘以五次不会得到100.0
参见:您的代码不编译。现在就修复它。谢谢。开始使用一致类型:A是浮点,而所有的文字都是双。我没有编写代码,它是C++基础验证的练习。@劳伦提使用CUT。
#include <iostream>
using namespace std;
int main(void) {
float a;
int i = 0;
for(a = 0.01; a < 1e2; a *= 1e1)
++i;
return 0;
}