c++如何控制输出浮点数小数点后若干位

 更新时间:2023年09月09日 17:08:20   作者:songlu2333  
这篇文章主要介绍了c++如何控制输出浮点数小数点后若干位问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

C++输出实现保留小数点后若干位

此方法主要参见《c++primer中文版》第五版670页的内容,使用<iomanip>标准库中的fixed操纵符与setprecision操纵符。

setprecision操纵符

setprecision操纵符可以指定浮点数的打印精度(总的位数),四舍五入且超过原有位数不会补零。

fixed操纵符

fixed操纵符可以改变流的状态以使用定点十进制表示浮点数,默认精度是小数点后6位,不足补零。

除此之外,iomanip中还有其他针对浮点数显示的操作符,例如scientific(科学记数法显示)、hexfloat(16进制显示),defaultfloat(恢复默认状态)。

fixed+setprecision

fixed系列的操作符会改变流的精度的默认含义,默认情况下,精度是指数字的总位数,包括小数部分位数与整数部分位数。

但在使用fixed、scientific、hexfloat后,精度值只控制小数部分,于是我们可以同时使用fixedsetprecision控制小数点后的位数,下图设置小数点后5位输出浮点数。

c++输出浮点数值“保留n位小数”或“保留n位有效位”

我们经常在输出浮点数值时,需要保留3位 / 2位等小数,或者保留几位有效位。这里有一个比较好用的方法。首先需要包含 iomanip 头文件。

1、保留n位小数位

使用fixed 和 setprecision(n)方法,参数n表示保留的小数位个数。

#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
	double PT = 3.14159267;
	//保留三位小数
	cout << fixed <<setprecision(3) << PT <<endl;
	//保留三位有效位
//	cout << setprecision(2) << PT <<endl;
	getchar();
}

结果:

2、保留n位有效位

只使用setprecision(n)方法,参数n表示保留的有效位个数。

#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
	double PT = 3.14159267;
	//保留三位小数
//	cout << fixed <<setprecision(3) << PT <<endl;
	//保留两位有效位
	cout << setprecision(2) << PT <<endl;
	getchar();
}

结果:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C语言结课设计之计算器功能

    C语言结课设计之计算器功能

    这篇文章主要为大家详细介绍了C语言结课设计之计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • C++学校运动会管理系统的实现

    C++学校运动会管理系统的实现

    这篇文章主要为大家详细介绍了C++如何实现学校运动会管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • C语言朴素模式匹配算法实例代码

    C语言朴素模式匹配算法实例代码

    朴素模式匹配算法也称为布鲁特-福斯算法,感觉很是高大上,但是实现起来很简单。这篇文章主要给大家介绍了关于C语言朴素模式匹配算法的相关资料,需要的朋友可以参考下
    2021-06-06
  • C++泛型编程综合讲解

    C++泛型编程综合讲解

    泛型编程与面向对象编程的目标相同,即使重用代码和抽象通用概念的技术更加简单。但是面向对象编程强调编程的数据方面,泛型编程强调的是独立于特定数据类型
    2022-12-12
  • 解析VScode在Windows环境下c_cpp_properties.json文件配置问题(推荐)

    解析VScode在Windows环境下c_cpp_properties.json文件配置问题(推荐)

    这篇文章主要介绍了解析VScode在Windows环境下c_cpp_properties.json文件配置问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • C++无痛实现日期类的示例代码

    C++无痛实现日期类的示例代码

    凡是要写类必须要提到六大默认成员(六位大爷):构造函数、析构函数、拷贝构造函数、赋值重载函数、取地址重载函数(包括const对象和普通对象);那么这次的日期类又需要伺候哪几位大爷呢?本文就来详细说说
    2022-10-10
  • C++多线程之带返回值的线程处理函数解读

    C++多线程之带返回值的线程处理函数解读

    这篇文章主要介绍了C++多线程之带返回值的线程处理函数解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C语言智能指针之weak_ptr浅析

    C语言智能指针之weak_ptr浅析

    这篇文章主要介绍了 C++11智能指针之weak_ptr详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • c++回溯法解决1到9之间插入加减或空使运算结果为100

    c++回溯法解决1到9之间插入加减或空使运算结果为100

    编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100
    2021-10-10
  • 变量定义与声明的区别详细解析

    变量定义与声明的区别详细解析

    外部变量(全局变量)的"定义"与外部变量的"声明"是不相同的,外部变量的定义只能有一次,它的位置是在所有函数之外,而同一个文件中的外部变量声明可以是多次的,它可以在函数之内(哪个函数要用就在那个函数中声明)也可以在函数之外(在外部变量的定义点之前)
    2013-09-09

最新评论