C++ “为什么要打印此程序”;是”;作为输出?
我只是在玩弄数据类型,陷入了这个两难境地。 这里有人能给我解释一下原因吗C++ “为什么要打印此程序”;是”;作为输出?,c++,C++,我只是在玩弄数据类型,陷入了这个两难境地。 这里有人能给我解释一下原因吗 #include<iostream> using namespace std; int main() { float a= 0.7; if(a < 0.7) cout<<"Yes"; else cout<<"No"; return 0; } #包括 使用名称空间std; int main(){ 浮动a=0.7;
#include<iostream>
using namespace std;
int main() {
float a= 0.7;
if(a < 0.7)
cout<<"Yes";
else
cout<<"No";
return 0;
}
#包括
使用名称空间std;
int main(){
浮动a=0.7;
如果(a<0.7)
cout0.7
没有精确表示为float
。近似的float
比0.7
的double
表示稍微小一点(这是在if
语句中用作常量时的默认解释)
有关这方面的更多详细信息,请参见注释中关于重复或无数变体的链接问题。因为0.7不能准确地表示为二进制浮点数。您的“困境”是什么?你展示的代码有什么问题?实际和预期的输出是什么?请把所有这些都放在问题的主体中,标题应该只是主体中问题的简短摘要。如果你还没有,请回答。因此,由于比较变量和所用的值很小,问题可能不是完全重复的刚分配给它。如果(a==0.7f)
它将打印“是”,请尝试将测试更改为。
#include<iostream>
using namespace std;
int main(){
float a= 0.8;
if(a < 0.8)
cout<<"Yes";
else
cout<<"No";
return 0;
}