免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 29275 | 回复: 1
打印 上一主题 下一主题

[C++] 为什么我老是能遇到这种超级简单又奇葩的问题 求大神搭救!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2020-07-13 11:07 |只看该作者 |倒序浏览
            #include <iostream>
using namespace std;

int main() {
     float a, f = 4.4;
     while (f > 0) {         
          cin >> a;
          f -= a;
          cout << f << endl;
     }
     return 0;
}
请依次输入1.1、2.2、1.1结果竟然不是0 !? (编译器vc 6.0)
求原因~

论坛徽章:
1
黑曼巴
日期:2020-07-12 15:27:28
2 [报告]
发表于 2020-07-17 14:18 |只看该作者
  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;

  4. int main( void )
  5. {
  6. //         int a, float b;
  7. //         int c; float d;
  8. //         a = 0; b = 3.14;
  9. //         c = 0; d = 3.14;
  10. //         cout << a << " " << b << endl;
  11. //         cout << c << " " << d << endl;
  12. //         return 0;



  13.                 float a;
  14.                 float f = 4.4f;
  15.                 printf("%f %f\n",a,f);
  16.                 while (f > 0)
  17.                 {         
  18.                         cin >> a ;
  19.                         printf("%f %f\n",a,f);
  20.                         f -= a;
  21.                         cout << f << endl;
  22.                         printf("f = %f\n",f);
  23.                         cout<<setiosflags(ios::fixed)<<setprecision(2) <<"cout f = "<< f << endl;
  24.         }
  25.                  cin >> a;
  26.                 return 0;
  27.       
  28. }
复制代码
cout的流输出的精度问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP