题目连接:

P5706 【深基2.例8】再分肥宅水 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

我提交的:

 1 #include<iostream>
2 #include<iomanip>
3 using namespace std;
4 int main(){
5 float a;
6 int b;
7 cin >> a >> b;
8
9 cout << setprecision(3) << a / b << endl;
10 cout << b * 2 << endl;
11 }

然而,只有一个AC,思考良久,不知为何而错。无奈看了看题解,发现人家比我多了一个"fixed"。那这个"fixed"到底是什么呢?

网上寻找了一圈,看见人家说:“如果一个数字太大,无法使用 setprecision 指定的有效数位数来打印,则许多系统会以科学表示法的方式打印。”

经过尝试后,发现果真如此:

所以应该加上fixed来控制位数。

那么,为什么setprecision不能这样输出呢?我又找了一圈,我发现我对setprecision的理解完全错了。

我过去曾认为:setprecision就是传统意义上,按照我们人脑控制的小数点位数。结果好像跟setw一样的效果,都是控制总有效位数?

现在,问题来到了setw和setprecision的区别:

setw(n): 右对齐,不够位数左边加空格,可以用setfill()来控制左边填充的东西

setprecision(n): 左对齐,不够位数不填充,对于小数点后的0会自动省略。

    double a = 123.321;
double b = 32.21;
//cin >> a >> b;
double num = a / b;
cout << "结果:" << endl;
cout << fixed << setw(6) << num << endl; //看看是不是对setw有效
cout << setprecision(6) << num << endl;
cout << num << endl; //看看是不是对下面也有效
cout << setprecision(2) << num << endl;
cout << num << endl; //确实有效
cout << setprecision(1) << num << endl;
  cout.setf(ios::fixed);  //加上这一句也可以
结果:
3.828656
3.828656
3.828656
3.83
3.83
3.8 D:\C++程序\try1\Debug\try1.exe (进程 63548)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .

结论:加上fixed后,经过尝试,setpricision可以控制小数位数,但是setw却不行。

总结:

  1. 如果cout要控制小数点位数,那么使用setprecision时要加上fixed;
  2. fixed对setprecision都有效果,对setw没有。
  3. setw只对下一个输出值有效,而setprecision对后面的输出都有效。

最新文章

  1. GridView 行单击或双击事件绑定
  2. Android广播大全
  3. SQL GUID去除横线,并转换为小写
  4. ajax的一部分知识
  5. Java8特性---关于Null
  6. scrapy在ubuntu上安装总结
  7. 《JS权威指南学习总结--8.4 作为值的函数》
  8. 201521123031《java程序设计》第五周学习总结
  9. linux 运维工程师发展路线
  10. 白盒测试实践-day02
  11. Springboot 前后端数据传输 常见误区
  12. vmware 里MAC 鼠标能移动 无法单击
  13. iis部署 .net core webapi
  14. oracle使用索引和不使用索引性能分析
  15. ie不支持max-height的解决之法
  16. Idea问题记录
  17. linux下实现CPU使用率和内存使用率获取方法
  18. 获取checkbox 组成字符串
  19. RxJava 详解
  20. flask 启动

热门文章

  1. JZ-057-二叉树的下一个结点
  2. 『现学现忘』Docker相关概念 — 8、虚拟化技术和容器技术的关系
  3. [ Skill ] load 函数优化,识别相对路径
  4. 4. Java流程控制
  5. php将一个字符串转变成键值对数组的效率问题
  6. social network 中Clustering Coefficient 相关笔记2
  7. CF708C题解
  8. LGP7847题解
  9. Django基础四之测试环境和ORM查询
  10. 基于python 实现KNN 算法