【C++】关于fixed和setprecision的学习和介绍

前言

在学习swap函数的时候,偶然了解到了fixed和setprecision,这两条控制语句,在了解了之后,觉得很有用,于是写一篇文章来介绍fixed和setprecision这两条控制语句

fixed控制输出形式

使用fixed语句需要包含<iomanip>头文件

cout<<fixed

那么无论输入的是整数还是浮点数,最终在输出的时候都会是浮点型

下面给出一个例子

#include<iostream>
#include<iomanip>using namespace std;int main()
{double i = 12;cout << i << endl;cout << fixed;cout << i << endl;return 0;
}

运行结果
在这里插入图片描述

setprecision语句

使用setprecision语句需要包含<iomanip>头文件
这个语句的作用是,控制输出的数据的精度

语法格式:

cout << setprecision(n);

n就是控制输出的位数

提示
这里不能输入变量,但是可以输入定义的常量或者const修饰的常变量

控制整数位 + 小数位

当并未使用fixed语句时,而是直接使用setprecision语句的话,他计算的位数是整数位 + 小数位

下面给出了一个例子

#include<iostream>
#include<iomanip>using namespace std;int main()
{double i = 12.123456;cout << setprecision(3);cout << i << endl;cout << setprecision(4);cout << i << endl;return 0;
}

运行结果:
在这里插入图片描述

控制小数位

当像下面这么使用时,

cout << fixed << setprecision(n);

在输出时,输出的小数小数点后面就有n位

下面给出一个例子

#include<iostream>
#include<iomanip>using namespace std;int main()
{double i = 12;cout << i << endl;cout << fixed << setprecision(3);cout << i << endl;return 0;
}

运行i结果:

在这里插入图片描述

注意

需要注意的是:这两个控制语句能控制这条语句后面的所有语句,当需要改变时,需要重新写一条语句

并且这两条语句只是控制输出格式,并不会对数据本身造成改变

可以看下面这个个例子,方便理解

#include<iostream>
#include<iomanip>using namespace std;int main()
{double i = 12.123456;cout << i << endl;cout << fixed;cout << i << endl;cout << setprecision(3);cout << i << endl;cout << setprecision(4);cout << i << endl;return 0;
}

运行结果:
在这里插入图片描述

练习题

接下来,通过一道题目,来帮助大家更好地去理解fixed和setprecision这两条控制语句

题目:2165: π的火把

七夕节临近,数字王国中的单身狗数字都一个个举起了火把。已知,当数字a举起了b的火把,就变成了a的b次方。那么,如果数字们都举起π的火把会是什么景象呢?

输入

第一行是一个整数T,表示测试实例的个数;

然后是T行输入数据,每行包含两个正整数n和x,表示底数和保留位数。

(1 <= T <= 100,1 <= n <= 500,1 <= x <= 6)

输出

对于每一个n,输出它举起π的火把的样子,输出保留x位数。

样例输入

3
1 3
7 6
9 1

样例输出

1.000
451.807873
995.0

提示

你可以在程序中定义

#define PI acos(-1.0)

思路

首先,这道题的意思是,输入n个整数,分别求这n个整数的PI次方,并给定了精度(也就是输出的位数)

对于输出的位数,我们可以直接使用setprecision这条语句

代码实现

下面就是代码实现

#include<iostream>
#include<iomanip>
#include<cmath>using namespace std;#define pi acos(-1.0);int main()
{int n = 0;int k = 0;int a = 0;int i = 0;double num = 0;cin >> n;for (i = 0; i < n; i++){cin >> a >> k;num = pow(a, pi);cout << fixed << setprecision(k);cout << num;}return 0;
}

结语

对于fixed和setprecision这两个简单的知识点就介绍到这里了,希望对你有帮助,我们下次见~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/113060.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab图像处理-图像缩放

基本概念 图像缩放是指将给定的图像在x轴方向按比例缩放a倍&#xff0c;在y轴方向按比例缩放b倍&#xff0c;从而获得一幅新的图像。 如果ab&#xff0c;即在x轴方向和y轴方向缩放的比率相同&#xff0c;则称这样的比例缩放为图像的全比例缩放。 如果a≠b&#xff0c;图像比…

在腾讯云服务器OpenCLoudOS系统中安装svn(有图详解)

1. 安装svn yum -y install subversion 安装成功&#xff1a; 2. 创建数据根目录及仓库 mkdir -p /usr/local/svn/svnrepository 创建test仓库&#xff1a; svnadmin create /usr/local/svn/test test仓库创建成功&#xff1a; 3. 修改配置test仓库 cd /usr/local/svn/te…

Visual Studio 2017安装和项目配置

目录 前言1. What、Why and How1.1 What1.2 Why1.3 How 2. 安装3. 创建新项目4. 配置OpenCV库4.1 下载opencv安装包4.2 配置系统环境变量4.3 VS项目环境配置4.4 总结 5. 已有项目添加6. Tips6.1 常用快捷键6.2 字体和颜色选择6.3 配置编译路径 结语下载链接参考 前言 最近因为项…

安装启动Stable Diffusion教程

一、下载源码 GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI 二、安装miniconda 参考&#xff1a;安装启动yolo5教程_苍穹之跃的博客-CSDN博客 三、安装CUDA 参考&#xff1a;安装启动yolo5教程_苍穹之跃的博客-CSDN博客 四、创建虚拟环境 co…

SpringBoot入门篇3 - 整合junit、整合mybatis、基于SpringBoot实现ssm整合

目录 1.整合JUnit Spring整合JUnit SpringBoot整合JUnit 测试类注解&#xff1a;SpringBootTest 作用&#xff1a;设置JUnit加载的SpringBoot启动类 2.整合mybatis ①使用spring initializr初始化项目的时候&#xff0c;添加依赖。 ②设置数据源application.yml spring:d…

搭建一个你的文件共享站

说起文件共享&#xff0c;类似文件站这样的功能。在很久之前我使用过用apache httpd这个方案&#xff0c;这个的话就是太过于简单了。当然是满足需求的&#xff08;又不是不能用&#xff09; 今天来分享一个开源的文件共享平台。Pingvin Share 作者的github地址&#xff1a;ht…

git私房菜

文章目录 1、公司项目开发Git协作流程2、合并相关的操作3、Git常用命令总结 公司中如何使用Git协同开发的&#xff1f;本文将具体介绍开发模式&#xff0c;以及一些常用命令。 1、公司项目开发Git协作流程 公司一个完整的项目出来&#xff0c;项目的推进是在主分支master上进行…

分布式训练 最小化部署docker swarm + docker-compose落地方案

目录 背景&#xff1a; 前提条件&#xff1a; 一、docker环境初始化配置 1. 安装nvidia-docker2 2. 安装docker-compose工具 3. 获取GPU UUID 4. 修改docker runtime为nvidia&#xff0c;指定机器的UUID 二、docker-swarm 环境安装 1. 初始化swarm管理节点 2. 加入工…

Linux的Man Page知识记录

Man&#xff08;short for manual&#xff09; Page是Unix和Linux操作系统中的一个重要文档&#xff0c;提供命令、函数、系统调用等的详细介绍和使用说明。它是以纯文本的形式出现&#xff0c;通常在终端&#xff08;terminal&#xff09;中使用man命令访问。Man Page按照章节…

Java seven 解读正则表达式、java方法的使用

目录 Java 正则表达式1. java.util.regex 包2. 捕获组3. 正则表达式语法4. Matcher 类的方法 Java 方法1. 定义&#xff1a;2. 优点3. 命名规则4. 方法调用5. 方法的重载6. 构造方法7. 可变参数8. finalize() 方法 Java 正则表达式 1. java.util.regex 包 Pattern 类&#xff…

FireFox禁用HTTP2

问题 最近需要调试接口&#xff0c;但是&#xff0c;Chrome都是强制使用h2协议&#xff0c;即HTTP/2协议。为了排除h2协议排除对接口调用的影响&#xff0c;需要强制浏览器使用HTTP1协议。 解决 FireFox 设置firefox的network.http.http2.enabled为禁用&#xff0c;这样就禁…

docker与phpstudy两种方式部署wordpress 并 开启伪静态

实际测试&#xff0c;可能是docker内存限制的缘故&#xff0c;docker部署的会比较卡 下载 wordpress phpstudy phpstudy中伪静态配置 伪静态 正常访问 WordPress 文章页的 URL 地址为 http://asa/index.php?p123。变成伪静态就是http://asa/123.html 。 伪静态是相对真实静…

第2章 Linux多进程开发 2.19-2.23 与信号相关的函数

软件中断&#xff1a; 信号名称&#xff08;宏不会变&#xff09;&#xff0c;编号在不同的版本可能会变&#xff1a; core保存进程异常退出的信息&#xff1a; core.c: #include <stdio.h> #include <string.h>int main() {char * buf; // 指针 没有指…

Vector<T> 动态数组(模板语法)

C数据结构与算法 目录 本文前驱课程 1 C自学精简教程 目录(必读) 2 动态数组 Vector&#xff08;难度1&#xff09; 其中&#xff0c;2 是 1 中的一个作业。2 中详细讲解了动态数组实现的基本原理。 本文目标 1 学会写基本的C类模板语法&#xff1b; 2 为以后熟练使用 S…

图像分割模型GUI应用:基于Tkinter和MMseg实现

简介 本篇博客介绍了一个使用Python的Tkinter库和MMseg图像分割库创建的图像分割模型GUI应用。该应用允许用户加载图像文件夹&#xff0c;浏览加载的图像&#xff0c;并对选定的图像执行分割推断&#xff0c;展示分割结果。这个应用演示了如何使用图形界面与深度学习模型结合&…

堆,堆排序和TOP—K问题(C语言版)

前言 堆是一种重要的数据结构&#xff0c;堆分为大根堆和小根堆&#xff0c;大根堆堆顶的数据是最大的&#xff0c;小根堆堆顶的数据是最小的&#xff0c;堆在逻辑结构上是一颗完全二叉树&#xff0c;这棵树中如果满足根节点大于左右子树&#xff0c;每个节点都满足这个条件就是…

MybatisPlus插件篇—逻辑删除+p6spy

文章目录 一、前言二、插件1、逻辑删除1.1、官方说明&#xff1a;1.2、配置依赖1.3、配置全局配置1.4、实体类字段上添加TableLogic注解1.5、验证是否成功 2、执行SQL分析打印2.1、配置依赖2.2、数据库驱动配置2.3、spy配置文件配置2.4、注意事项 三、总结提升 一、前言 本文将…

LLM本地知识库问答系统(一):使用LangChain和LlamaIndex从零构建PDF聊天机器人指南

随着大型语言模型&#xff08;LLM&#xff09;&#xff08;如ChatGPT和GPT-4&#xff09;的兴起&#xff0c;现在比以往任何时候都更容易构建比普通熊更智能的智能聊天机器人&#xff0c;并且可以浏览堆积如山的文档&#xff0c;为您的输入提供准确的响应。 在本系列中&#xf…

java八股文面试[数据库]——数据库三范式

什么是范式&#xff1f; 范式是数据库设计时遵循的一种规范&#xff0c;不同的规范要求遵循不同的范式。 最常用的三大范式 第一范式(1NF)&#xff1a;属性不可分割&#xff0c;即每个属性都是不可分割的原子项。(实体的属性即表中的列) 理解&#xff1a;一个列不能包含两个数…

【GO】LGTM_Grafana_Tempo(2)_官方用例改后实操

最近在尝试用 LGTM 来实现 Go 微服务的可观测性&#xff0c;就顺便整理一下文档。 Tempo 会分为 4 篇文章&#xff1a; Tempo 的架构官网测试实操跑通gin 框架发送 trace 数据到 tempogo-zero 微服务框架使用发送数据到 tempo 根据官方文档实操跑起来 tempo&#xff0c;中间根…