C / C++ 如何保留两位小数
转载:https://blog.csdn.net/qq_36667170/article/details/79265224
目录
首先说C++代码
然后说C的代码
深入理解
首先说C++代码
#include <iostream>
#include <iomanip> //不要忘了头文件
using namespace std;
int main(){//第一种写法cout<<setiosflags(ios::fixed)<<setprecision(2);//第二种写法cout.setf(ios::fixed);cout<<setprecision(2);//第三种写法cout<<fixed<<setprecision(2);
}
- 要保留几位小数setprecision(n)的括号里n就换成几。
- 前两种写法是一样的,第三种是简化写的。
- 上面的语句写一次就行了,对之后的数字都有效。
然后说C的代码
%f 格式化输出浮点型数据,在%之后加上“.n”即可。例如:
#include <stdio.h>
int main()
{float PI=3.1415926;float R=5.3;printf("面积 = %.2f\n", PI * R * R); //输出:面积 = 88.25printf("面积 = %f\n", PI * R * R); //输出:面积 = 88.247337printf("面积 = %.8f\n", PI * R * R); //输出:面积 = 88.24733734return 0;
}
- %.2f\n中的“.2”即保留两位小数
- //不设定保留几位小数,则默认六位
深入理解
1.首先解释一下“语句写一次就行了,对之后的数字都有效”。
在s之后设置保留两位小数之后,重新声明另一个数,输出依旧显示两位小数。所以设置精度语句只需写一次就可以了。
#include <iostream>
#include <iomanip> //设置必备的头文件
using namespace std;
int main()
{double s=12.345;cout<<setiosflags(ios::fixed)<<setprecision(2);cout<<s<<endl; //输出12.35float pi=3.14159;cout<<pi<<endl; //输出3.14return 0;
}
2.setprecision(n)
功能:控制浮点数显示的有效数字个数。
图中可以看
- 由8-9两行代码可以看出,也是只写一次就可以。
- 8-10行可以看出,只是四舍五入修改了数字的显示方法,并不是修改原数字。从常识我们可以知道,如果12.345数字本身改变,那就是两位有效数字变为 12,那从两位有效数字改为四位有效数字会变为 12.00,而不是12.34。
- 11-12行可以看出如果要保留的太多,是不会补上0的(往下看有补0的方法)。
- 13行中可以看出,如果小数点前的位数多于你要保留位数,则会使用科学计数法。
#include <iostream>
#include <iomanip>
using namespace std;
int main(){double s=12.345;cout<<setprecision(2)<<s<<endl;cout<<s<<endl;cout<<setprecision(4)<<s<<endl;cout<<setprecision(6)<<s<<endl;cout<<setprecision(8)<<s<<endl;cout<<setprecision(1)<<s<<endl;return 0;
}
3.补充一小点showpoint
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{double s=12.345;cout<<s<<endl; //输出原数12.345cout<<setprecision(2);cout<<s<<endl; //输出保留两位有效数字12cout.setf(ios::showpoint); //或者写cout<<setiosflags(ios::showpoint);cout<<s<<endl; //输出保留两位有效数字外加一个小数点12.return 0;
}
这是在尝试过程中发现的一个无聊操作,如果12.34保留两位有效数字,会显示12,但是你可以经过这个操作让它显示12. 注意有个“.”
4.fixed
setprecision(n)和fixed合用的话可以控制小数点后有几位。
只要加上以下任意一个语句就可以。
cout<<setiosflags(ios::fixed);
cout.setf(ios::fixed);
cout<<fixed;
然后你会发现,如果你要保留的位数多于数字原来的小数,就会补上0。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{double s=12.345;cout.setf(ios::fixed);cout<<setprecision(1)<<s<<endl;cout<<setprecision(3)<<s<<endl;cout<<setprecision(5)<<s<<endl;return 0;
}
C / C++ 如何保留两位小数相关推荐
- python中保留两位小数的编写程序_Python中保留两位小数的几种方法
保留两位小数,并做四舍五入处理 方法一: 使用字符串格式化 >>> a = 12.345 >>> print("%.2f" % a) 12.35 ...
- ACMNO.14一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数 输入 M N 输出 它在第N次落地时反弹多高?共经过多少米
题目描述 一球从M米高度自由下落,每次落地后返回原高度的一半,再落下.它在第N次落地时反弹多高?共经过多少米? 保留两位小数 输入 M N 输出 它在第N次落地时反弹多高?共经过多少米? 保留两位小数 ...
- ACMNO.12有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。 输入 N 输出 数列前N项和 样例输入 10
题目描述 有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数. 输入 N 输出 数列前N项和 样例输入 10 样例输出 16.48 ...
- 保留两位小数除法算式_北师大|五年级上册|第一周周测·小数除法(1)
北师大·五年级上册·第一周周测·小数除法(1) 一.计算题 3.6÷1.2= 0.72÷0.9= 2.6÷13= 4.8÷0.4= 4.4÷4= 0.78÷6= 7.2÷0.4= 1÷0.25= 5. ...
- java保留两位小数_java使double保留两位小数的多方法 java保留两位小数
这篇文章主要介绍了java使double类型保留两位小数的方法,大家参考使用吧 mport java.text.DecimalFormat; DecimalFormat df = new Decima ...
- 【js】小数点后保留两位小数
小数点后保留两位小数 dicountPrice.toFixed(2)
- java保留两位小数
2019独角兽企业重金招聘Python工程师标准>>> java保留两位小数 博客分类: java java保留两位小数问题: 方式一: 四舍五入 double f = ...
- python 保留两位小数 实现方法
目录 保留两位小数,并做四舍五入处理 方法一: 使用字符串格式化 方法二: 使用round内置函数 方法三: 使用decimal模块 仅保留两位小数,无需四舍五入 方法一: 使用序列中切片 方法二: ...
- c++ 四舍五入保留两位小数_Excel中保留小数点位数
今天老板让我把带有小数点的表格进行整理,老板说把数据整理成保留两位,默认为四舍五入,老板还要整理成一种不四舍五入的数据.好的老板马上整理,这次老板的要求正好是我会的,真棒!我们一起来学一下吧. 首先我 ...
- java拼接sql保留两位小数_SQL 保留两位小数的实现方式
问题: 客户要求,跟金额相关的数据,打印出来要保留两位小数,比如:13.2/13.200要显示为13.20: 分析: 首先查看数据库中的数据定义,均为decimal(12,2) ,直接通过数据库查询的 ...
最新文章
- NSDate的具体用法
- pytest框架安装(MacOS)
- 【第二版】RichFaces中使用datatable和datascroller进行分页(使用数据库分页,改良版)(含源码)(JSF 1.2,RichFaces 3.2.1GA)
- Spring的@Scheduled任务调度
- chrome插件-显示在地址栏的二维码
- 至linuxNIC添加多个IP
- 使用Tushare库下载股票数据
- 腾讯魔镜壁纸所在位置
- 隔行换色+删除+批量删除+排序+模糊查询+修改+添加
- 计算思维是利用计算机,计算机思维论文
- 关于MAC下php出现:Call to undefined function Think\imagettftext()的解决办法
- 2021-07-04 【5】
- 用setTimeout来实现setInterval
- Linux GPIO操作分析 - Exynos 5260
- 【中文技术文档的写作规范_P03】如何书写标点符号和控制文档体系
- VK11 VK12 保存增强
- day6邮件自动发送
- android备份固件,安卓固件管家(Rom Manager Premium)
- 强化学习-策略迭代代码实现
- 关于IOS系统,H5页面操作history.go(n)回退页面时不会刷新页面数据的问题