洛谷 P5706 【深基2.例8】再分肥宅水
题目连接:
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却不行。
总结:
- 如果cout要控制小数点位数,那么使用setprecision时要加上fixed;
 - fixed对setprecision都有效果,对setw没有。
 - setw只对下一个输出值有效,而setprecision对后面的输出都有效。
 
洛谷 P5706 【深基2.例8】再分肥宅水的更多相关文章
- 洛谷——P1832 A+B Problem(再升级)
		
P1832 A+B Problem(再升级) 题目背景 ·题目名称是吸引你点进来的 ·实际上该题还是很水的 题目描述 ·1+1=? 显然是2 ·a+b=? 1001回看不谢 ·哥德巴赫猜想 似乎已呈泛 ...
 - 洛谷P1832 A+B Problem(再升级) [2017年4月计划 动态规划03]
		
P1832 A+B Problem(再升级) 题目背景 ·题目名称是吸引你点进来的 ·实际上该题还是很水的 题目描述 ·1+1=? 显然是2 ·a+b=? 1001回看不谢 ·哥德巴赫猜想 似乎已呈泛 ...
 - 洛谷 P1832 A+B Problem(再升级)
		
题目背景 ·题目名称是吸引你点进来的 ·实际上该题还是很水的 题目描述 ·1+1=? 显然是2 ·a+b=? 1001回看不谢 ·哥德巴赫猜想 似乎已呈泛滥趋势 ·以上纯属个人吐槽 ·给定一个正整数n ...
 - 洛谷P1832 A+B Problem(再升级)
		
放题解 题目传送门 放代码 #include<bits/stdc++.h> using namespace std; ];//n为被分解数 a数组用于存储素数 ];//dp数组用于存储方案 ...
 - 洛谷P1832 A+B Problem(再升级) 题解 完全背包方案计数
		
题目链接:https://www.luogu.com.cn/problem/P1832 题目大意: 给定一个正整数n,求将其分解成若干个素数之和的方案总数. 解题思路: 首先找到所有 \(\le n\ ...
 - 洛谷P1478 陶陶摘苹果(升级版)【水题】
		
又是一年秋季时,陶陶家的苹果树结了n个果子.陶陶又跑去摘苹果,这次她有一个a公分的椅子.当他手够不着时,他会站到椅子上再试试. 这次与NOIp2005普及组第一题不同的是:陶陶之前搬凳子,力气只剩下s ...
 - 【洛谷P2907】 【USACO08OPEN】农场周围的道路  水模拟分治
		
P2907 [USACO08OPEN]农场周围的道路Roads Around The Farm 题目描述 Farmer John's cows have taken an interest in ex ...
 - 洛谷P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib 使用四种算法
		
洛谷P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib 水题一道…… 题目描述 农民约翰的母牛总是产生最好的肋骨.你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们. ...
 - 网络流24题 第三题 - CodeVS1904 洛谷2764 最小路径覆盖问题  有向无环图最小路径覆盖  最大流  二分图匹配  匈牙利算法
		
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - CodeVS1904 题目传送门 - 洛谷2764 题意概括 给出一个有向无环图,现在请你求一些路径,这些路径 ...
 
随机推荐
- Linux下安装mysql你又踩过多少坑【宇宙最全教程】
			
一.检查以前是否安装过MySql 因为cnetos7一般默认安装mariadb,所以要检查mysql或者mariadb是否安装 rpm -pa | grep -i mysql rpm -pa | gr ...
 - WPF优秀组件推荐之FreeSpire
			
概述 Spire是一套可以轻松处理Word.Excel和PDF的商业组件,需要收费,但是他有一套对应的免费组件FreeSpire可以使用,免费组件在功能上有一些限制(比如:excel的sheet数量不 ...
 - 微信小程序+laravel 7+ Redis +短信宝 实现手机号验证码登录
			
以下代码可以进行优化和封装:这里我实现功能为主,就不封装啦.小伙伴可以自己试着封装一下. 1:书写登录表单 <view class="container"> <v ...
 - 阿里云CND加速
			
1: :2: 3: 4: 5: 6: 7:将解析信息如实添加 8:如果报错添加 CNAME 记录提示和 A 记录冲突,也就是说如果你要添加 CDN 全站加速,域名解析那里就不能再有 A 记录了, 只有 ...
 - egg项目eslint不识别链式操作符的解决方法
			
项目用到链式?.结果eslint一直提示 const permissionHandleArr = positionPermissionHandle.map(item => item.permis ...
 - KDT入门小讲
			
KDT入门小讲 为了搞讲课两天搞出来的PPT,质量不高,随便看看 附:讲课用PPT 链接: https://pan.baidu.com/s/1qHea0fEhscAsQh8-Yu_j_A 提取码: 4 ...
 - Fiddler抓取https协议的证书导入过程
			
fildder抓取https的设置以及证书导出 打开fiddler界面,选择左上角菜单栏Tools-Options 出现Options界面后,选择HTTPS选项卡 勾选上Capture HTTPS C ...
 - jdbc model 代码示例
			
package com.gylhaut.model; import java.util.Date; public class Goddess { @Override public String toS ...
 - 【Linux】apt软件管理和远程登录
			
镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 1. apt 介绍 apt 是 Advanced Packaging Tool 的简称,是一款安装包管理工具.在 Ubuntu 下,可以使用 ap ...
 - redis哨兵功能
			
redis哨兵功能 redis-Sentinel(哨兵) 前言 当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户都没有实现主从切换的功能 redis ...