转载: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++ 如何保留两位小数相关推荐

  1. python中保留两位小数的编写程序_Python中保留两位小数的几种方法

    保留两位小数,并做四舍五入处理 方法一: 使用字符串格式化 >>> a = 12.345 >>> print("%.2f" % a) 12.35 ...

  2. ACMNO.14一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数 输入 M N 输出 它在第N次落地时反弹多高?共经过多少米

    题目描述 一球从M米高度自由下落,每次落地后返回原高度的一半,再落下.它在第N次落地时反弹多高?共经过多少米? 保留两位小数 输入 M N 输出 它在第N次落地时反弹多高?共经过多少米? 保留两位小数 ...

  3. 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 ...

  4. 保留两位小数除法算式_北师大|五年级上册|第一周周测·小数除法(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. ...

  5. java保留两位小数_java使double保留两位小数的多方法 java保留两位小数

    这篇文章主要介绍了java使double类型保留两位小数的方法,大家参考使用吧 mport java.text.DecimalFormat; DecimalFormat df = new Decima ...

  6. 【js】小数点后保留两位小数

    小数点后保留两位小数 dicountPrice.toFixed(2)

  7. java保留两位小数

    2019独角兽企业重金招聘Python工程师标准>>> java保留两位小数 博客分类: java java保留两位小数问题: 方式一: 四舍五入   double   f   =  ...

  8. python 保留两位小数 实现方法

    目录 保留两位小数,并做四舍五入处理 方法一: 使用字符串格式化 方法二: 使用round内置函数 方法三: 使用decimal模块 仅保留两位小数,无需四舍五入 方法一: 使用序列中切片 方法二: ...

  9. c++ 四舍五入保留两位小数_Excel中保留小数点位数

    今天老板让我把带有小数点的表格进行整理,老板说把数据整理成保留两位,默认为四舍五入,老板还要整理成一种不四舍五入的数据.好的老板马上整理,这次老板的要求正好是我会的,真棒!我们一起来学一下吧. 首先我 ...

  10. java拼接sql保留两位小数_SQL 保留两位小数的实现方式

    问题: 客户要求,跟金额相关的数据,打印出来要保留两位小数,比如:13.2/13.200要显示为13.20: 分析: 首先查看数据库中的数据定义,均为decimal(12,2) ,直接通过数据库查询的 ...

最新文章

  1. NSDate的具体用法
  2. pytest框架安装(MacOS)
  3. 【第二版】RichFaces中使用datatable和datascroller进行分页(使用数据库分页,改良版)(含源码)(JSF 1.2,RichFaces 3.2.1GA)
  4. Spring的@Scheduled任务调度
  5. chrome插件-显示在地址栏的二维码
  6. 至linuxNIC添加多个IP
  7. 使用Tushare库下载股票数据
  8. 腾讯魔镜壁纸所在位置
  9. 隔行换色+删除+批量删除+排序+模糊查询+修改+添加
  10. 计算思维是利用计算机,计算机思维论文
  11. 关于MAC下php出现:Call to undefined function Think\imagettftext()的解决办法
  12. 2021-07-04 【5】
  13. 用setTimeout来实现setInterval
  14. Linux GPIO操作分析 - Exynos 5260
  15. 【中文技术文档的写作规范_P03】如何书写标点符号和控制文档体系
  16. VK11 VK12 保存增强
  17. day6邮件自动发送
  18. android备份固件,安卓固件管家(Rom Manager Premium)
  19. 强化学习-策略迭代代码实现
  20. 关于IOS系统,H5页面操作history.go(n)回退页面时不会刷新页面数据的问题

热门文章

  1. 五一公众号文章就用来逗编辑器编辑排版
  2. c语言if多条件并列_C/C++编程笔记:C语言预编译指令—条件编译,零基础推荐收藏
  3. TiBERT:藏语预训练语言模型——中文翻译
  4. PDF转换PPT,方法、途径都在这里!
  5. 前窗玻璃膜贴了一周还有气泡_汽车前挡风玻璃贴膜气泡怎么处理
  6. 如何实现背景图片的高斯模糊(毛玻璃边)效果 filter: blur(5px)
  7. 【Go】高效截取字符串
  8. vue 限制手机端访问
  9. 前端基础:vue(四)前后端交互promis、fetch、axios
  10. java数字人民币转大写的方法及注意事项