C++ 保留N位小数的几种方法

2023-11-01

C++ 保留N位小数的几种方法(setprecision(n)的部分用法总结)

C++的保留小数常用setprecision(n)来实现,n就是保留n位小数。
首先一定不要忘了头文件#include <iomanip>(很重要)
方法1:
语句只需要写一次setprecision(n)设置精度就够了

#include <iomanip>
...
cout<<fixed<<setprecision(n)<<shu; //shu就是你要保留小数的数字;
...

方法2:
同样只需写一次setprecision(n)设置精度就够了

#include <iomanip>
...
cout<<setiosflags(ios::fixed)<<setprecision(n)<<shu;//shu还是要保留的数字
...

方法3:
还是只需setprecision(n)设置精度一次就够了

#include <iomanip>
...
cout.setf(ios::fixed);
cout<<setprecision(n)<<shu;//shu同样是你需要保留小数的数字

往深了谈谈,setprecision(n)的功能:控制浮点数显示的有效数字个数
定义了一次之后的数字都会保留,例如

#include <iostream>
#include <iomanip>   //必备的头文件
using namespace std;
int main()
{
	double s=66.345;
	cout<<setiosflags(ios::fixed)<<setprecision(2);
	cout<<s<<endl;   //输出66.35
	
	float pi=3.1415926;
	cout<<pi<<endl;   //输出3.14
	
	return 0;
}

但注意setprecision(n)单独使用时只有显示有效数字的功能,并不是直接显示保留位数

#include <iostream>
#include <iomanip>   
using namespace std;
int main()
{
	double s=66.345;
	cout<<setprecision(2)<<s;  //输出66而不是66.35 
	return 0;
}

和fixed合用才会是保留n位小数而括号里的n就是几

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

这几个方式如果它的小数位数不够还会自动补0。

#include <iostream>
#include <iomanip>   
using namespace std;
int main()
{
	double s=66.345;
	cout.setf(ios::fixed);
	cout<<setprecision(2)<<s<<endl;  //输出66.34,不是没四舍五入,而是没显示后面的5 
	cout<<setprecision(3)<<s<<endl;  //输出66.345 
	cout<<setprecision(5)<<s<<endl;  //输出66.34500 
	return 0;
}

初学者,见解浅陋,请多多指教

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 保留N位小数的几种方法 的相关文章

随机推荐

  • 用redis实现支持优先级的消息队列

    用redis实现支持优先级的消息队列 为什么需要消息队列 系统中引入消息队列机制是对系统一个非常大的改善 例如一个web系统中 用户做了某项操作后需要发送邮件通知到用户邮箱中 你可以使用同步方式让用户等待邮件发送完成后反馈给用户 但是这样可
  • 出现 HTTP 错误 500.19 错误代码 0x800700b7

    这个内容出现主要问题是在IIS上 我们一般程序开发 iis中默认的路径只是http localhost 相当于环境变量中已定义好了 如果自己创建的项目直接将路径定义到这 就会替换图二中的路径 然后你的程序图一中所指向的路径就会无效 图三是我
  • Java,Enum里定义属性和方法

    最近的项目用到了大神写的统一返回码的代码 ErrorCode java 统一6位 异常码 author Administrator public enum ErrorCode global OK 000000 操作成功 ERROR 0000
  • 子类化QListWidget实现自定义拖拽功能.

    我们经常会碰到这样的一个问题 我们想把其他地方选中的文本 直接通过拖拽移动到一个控件中 从而实现方便添加项的功能 这里我们以QListWidget作为例子 来实现这么一个功能 其他地方的文本可直接拖拽进QListWidget中 且QList
  • pandas to_sql详解

    pandas to sql api的使用文章已经很多了 但是都只是简单介绍了怎么使用 一些细节问题没有介绍到 这里我们增加说明一些细节问题 1 列的对应 2 多值插入 3 批量插入 api说明 照常 我们对api参数也做一下详细的介绍 也就
  • 第一次使用markdown编辑器_交换两个数组

    交换两个数组 将两个整形变量进行交换可引入第三个变量 数组的交换也可以这样做 int main int arr1 1 2 3 定义两个数组 int arr2 2 3 4 int i 0 int tmp 0 定义第三个数组用于交换 for i
  • 12-控制Pawn类移动与调整视角 UE4 C++

    在上一节 11 控制Pawn类移动增加镜头摇臂 已经完成了Pawn的移动和镜头摇臂功能 本节继续增加移动镜头视角的功能 首先在MyPawn h中增加如下代码 void CameraPitch float Value 用于调整抬头低头 voi
  • cocos2d-x下c++调用lua函数

    首先需要lua中的函数句柄传到c 层 通过tolua 将c 类绑定到lua后 构造该c 类时传入lua函数句柄即可 在c 层回调lua函数的具体代码如下 void notifyLua int type int value CCLuaStac
  • C++ sort()排序函数用法详解

    include
  • python自动化操作_文件和目录的批量重命名操作

    一 文件和文件夹的批量重命名 1 文件重命名使用os库里的rename函数 os rename old new 二 复杂路径中的文件重命名 1 注意文件夹修改的时候 会只修改最外层的文件夹 因为改了后就变了名字 找不到啦 解决办法 加top
  • JAVA在线考试系统

    一 项目简介 随着互联网迅速发展 人们的生活已经越来越离不开互联网 人们足不出户就可以工作 买卖 学习等 对于在校学生 通过网络教育不仅可以随时进行网络学习 也可以根据学习的情况自我检测 有利于学生高效 快捷地掌握所学的知识 本系统预设计的
  • 五、传输层(三)TCP

    目录 3 0 TCP特点补充 3 1 TCP报文段首部格式 3 2 TCP连接管理 3 2 1 三报文握手 3 2 2 四报文挥手 3 3 TCP的流量控制和可靠传输 3 4 TCP拥塞控制 3 4 1 接收窗口 拥塞窗口 发送窗口关系 3
  • STM32G070 onchip移植FlashDB

    一 Onchip Flash 特性 在STM32G070 的片内 Flash写入数据之前必须先对目标地址进行擦除后才能写入数据 数据写入 G070 Flash 写入数据必须保证8字节对齐 一次写入双字数据64bit 8Byte 数据读取 使
  • 从零开始实现SSD目标检测(pytorch)(一)

    目录 从零开始实现SSD目标检测 pytorch 第一章 相关概念概述 1 1 检测框表示 1 2 交并比 第二章 基础网络 2 1 基础网络 2 2 附加网络 第三章 先验框设计 3 1 引言 3 2 先验框设计 3 3 先验框可视化 3
  • Unity APK在应用宝上架因为提前访问Android_ID被拒

    Unity启动时获取了设备信息 其中包括Android id 这在安全审查中不被允许 需要在同意隐私协议之后才允许调用 1 个推SDK Bugly等SDK的API会访问到ANDROID ID 通过调整逻辑放在同意隐私协议之后初始化 2 提前
  • python画柱状图并数值显示

    usr bin env python3 coding utf 8 Author yudengwu Date 2020 6 12 import matplotlib matplotlib use TkAgg from pylab import
  • MySQL中的锁

    第15章 锁 事务的隔离性由这章讲述的锁来实现 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制 在程序开发中会存在多线程同步的问题 当多个线程并发访问某个数据的时候 尤其是针对一些敏感的数据 比如订单 金额等 我们就需要保证这个数
  • 初探KVM虚拟化技术:新手指南

    首先了解一下虚拟化的概念 虚拟化是指对资源的逻辑抽象 隔离 再分配 管理的一个过程 通常对虚拟化的理解有广义狭义之分 广义包括平台虚拟化 应用程序虚拟化 存储虚拟化 网络虚拟化 设备虚拟化等等 狭义的虚拟化专门指计算机上模拟运行多个操作系统
  • 2022年年终总结及2023年展望-----学习总是对的,机会善于光顾有准备的头脑

    2022年 是比较波折的一年 想到哪里写到哪里吧 我感觉 之所以没被打倒 还是因为多学习 只有学的不够 没有学的多余 机会总是善于光顾有准备的头脑 工作和学习是相互独立的事情 优先学习工作需要的内容 其他的也要学 由于一直学着人宅的视频教程
  • C++ 保留N位小数的几种方法

    C 保留N位小数的几种方法 setprecision n 的部分用法总结 C 的保留小数常用setprecision n 来实现 n就是保留n位小数 首先一定不要忘了头文件 include