C / C++ 保留两位小数(setprecision(n)的一些用法总结)「建议收藏」

C / C++ 保留两位小数(setprecision(n)的一些用法总结)「建议收藏」  做题遇到保留两位小数的题目,课本上写的又多又杂,网上查来的也是一堆内容需要筛选,눈_눈还是自己总结一下吧。  首先说C++代码#include<iomanip>//不要忘了头文件//第一种写法cout<<setiosflags(ios::fi

大家好,又见面了,我是你们的朋友全栈君。

做题遇到保留两位小数的题目,课本上写的又多又杂,网上查来的也是一堆内容需要筛选,눈_눈还是自己总结一下吧。


首先说C++代码

	#include <iomanip> //不要忘了头文件
	//第一种写法
	cout<<setiosflags(ios::fixed)<<setprecision(2);
	//第二种写法
	cout.setf(ios::fixed);
	cout<<setprecision(2);
	//第三种写法
	cout<<fixed<<setprecision(2);
  • 要保留几位小数setprecision(n)的括号里n就换成几。
  • 前两种写法是一样的,第三种是简化写的。
  • 上面的语句写一次就行了,对之后的数字都有效。

然后说C的代码

个人感觉c的输出比较简单粗暴。

  • %f 格式化输出浮点型数据,在%之后加上“.n”即可。例如:
#include <stdio.h>
int main()
{ 
   
	float PI=3.1415926;
	float R=5.3;
	printf("面积 = %.2f\n", PI * R * R); //输出:面积 = 88.25
	printf("面积 = %f\n", PI * R * R);   //输出:面积 = 88.247337
	printf("面积 = %.8f\n", PI * R * R); //输出:面积 = 88.24733734
        return 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.35
	
	float pi=3.14159;
	cout<<pi<<endl;   //输出3.14
	
	return 0;
}

2.setprecision(n)
   功能:控制浮点数显示的有效数字个数。

图中可以看出,只用setprecision(n)是控制保留几位有效数字的。

  • 由8-9两行代码可以看出,也是只写一次就可以。
  • 8-10行可以看出,只是四舍五入修改了数字的显示方法,并不是修改原数字。从常识我们可以知道,如果12.345数字本身改变,那就是两位有效数字变为 12,那从两位有效数字改为四位有效数字会变为 12.00,而不是12.34。
  • 11-12行可以看出如果要保留的太多,是不会补上0的(往下看有补0的方法)。
  • 13行中可以看出,如果小数点前的位数多于你要保留位数,则会使用科学计数法。
    这里写图片描述

2.5补充一小点showpoint
  这里写图片描述
  这是在尝试过程中发现的一个无聊操作,如果12.34保留两位有效数字,会显示12,但是你可以经过这个操作让它显示12. 哈哈哈哈哈哈哈注意有个“.”ヽ(•̀ω•́ )ゝ!

	double s=12.345;
	cout<<s<<endl;   //输出原数12.345
	cout<<setprecision(2);
	cout<<s<<endl;   //输出保留两位有效数字12
	cout.setf(ios::showpoint);//或者写cout<<setiosflags(ios::showpoint);
	cout<<s<<endl;   //输出保留两位有效数字外加一个小数点12.

3.fixed
  setprecision(n)和fixed合用的话可以控制小数点后有几位。
  只要加上以下任意一个语句就可以。

cout<<setiosflags(ios::fixed);
cout.setf(ios::fixed);
cout<<fixed;

然后你会发现,如果你要保留的位数多于数字原来的小数,就会补上0。
这里写图片描述


_(:3 」∠) 我是萝莉安,梦想是做个程序媛……

有CSDN账号的帮我点个赞或者评论一下吧,不愿意也不强求啦。
你们点赞评论我才会得积分,才会升等级,等级高了才能给博客换好看的皮肤??

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130186.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • utf8在mysql占几个字符_utf-8的中文,一个字符占几个字节「建议收藏」

    utf8在mysql占几个字符_utf-8的中文,一个字符占几个字节「建议收藏」https://blog.csdn.net/kindsuper_liu/article/details/80202150英文字母和中文汉字在不同字符集编码下的字节数英文字母:·字节数:1;编码:GB2312字节数:1;编码:GBK字节数:1;编码:GB18030字节数:1;编码:ISO-8859-1字节数:1;编码:UTF-8字节数:4;编码:UTF-16字节数:2;编…

    2022年6月26日
    31
  • DatabaseMetaData.getIndexInfo

    DatabaseMetaData.getIndexInfo示例通过DatabaseMetaData.getIndexInfo()获取索引信息。publicstaticvoidgetIndexInfo()throwsException{Connectionconn=getConnection();ResultSetrs=null;try{

    2022年6月19日
    25
  • 频谱分析仪的基本使用方法_频谱仪的功能使用

    频谱分析仪的基本使用方法_频谱仪的功能使用因为项目需要,今天学着使用的一下频谱分析仪,项目属于物联网类型,通信方式是使用的当前市面上比较火的Lora技术(当前市面上常用的两种低功耗远距离通信方案是LORA和NB-LOT)。本次使用频谱分析仪用来测量设计的板子用Lora发送无线数据时候的一些相关参数,主要测试天线发送数据时候的发射功率(单位:DB)。在这里对仪器的基本使用做一个记录,以为备忘。一、频谱分析仪的使用入门如下图为所使

    2022年8月11日
    8
  • 国际标准时间哪个时区_北京时间与世界时间的换算

    国际标准时间哪个时区_北京时间与世界时间的换算关于时间格式2016-08-9T10:01:54.123Z20160809100154.123Z处理方法今天遇到了一个奇怪的时间格式如以下格式,下面两种时间格式所表示的时间是同一个时间,这个不难理解//UTC时间,世界标准时间2016-08-9T10:01:54.123Z20160809100154.123Z如图所示,这是一张由网友提供的图片,里面显示的是时间UTC…

    2025年8月21日
    4
  • 【5GC】5G网络切片与5G QoS的区别?[通俗易懂]

    【5GC】5G网络切片与5G QoS的区别?[通俗易懂]网络切片是一种5G支持的技术,允许跨移动网络域(接入网、传输网和核心网)创建一个端到端网络实例。理想情况下,每个切片都用特定的网络功能和特性来标识。向终端用户、企业和MVNOs提供专用的端到端网络实例的技术称为“切片”,其中一个网络可以有多个具有不同特征的切片,为不同的用例服务。该技术通过SDN/NFV编排框架实现,该框架为切片提供全生命周期管理,使动态切片(按需实例化和终止切片)具有全服务保证能力。关于SDN/NFV的介绍可以参考我的博客《【SDNvs.NFV】纠缠不清的SDN和NFV》和。。…

    2022年10月2日
    5
  • Ubuntu 软件卸载[通俗易懂]

    Ubuntu 软件卸载[通俗易懂]1.卸载程序和所有配置文件。在终端中输入以下命令,卸载需要完全移除的程序:sudoapt-get–purgeremovesoftname2.只卸载程序。如果你移除程序但保留配置文件,请输入以下命令:sudoapt-getremovesoftname参考:Ubuntu16.04软件卸载-简书…

    2025年11月11日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号