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语言转义字符和格式控制符。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • QT中在QLabel显示图片并且利用鼠标点击画线问题

    QT中在QLabel显示图片并且利用鼠标点击画线问题

    这篇文章主要介绍了QT中在QLabel显示图片并且利用鼠标点击画线问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 简单谈谈C++中指针与引用的区别

    简单谈谈C++中指针与引用的区别

    指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法
    2017-04-04
  • c++编译使用log4cplus的详细步骤

    c++编译使用log4cplus的详细步骤

    C++很强大,但是仍然有很多不尽如人意的地方,比如打印日志方面就没有java的log4j那种信手拈来,自然而然地东西,今天我们说一说一个很强大地日志库log4cplus在c++项目中地使用,感兴趣的朋友一起看看吧
    2023-10-10
  • C++直接cout指针名的含义?

    C++直接cout指针名的含义?

    今天小编就为大家分享一篇关于C++直接cout指针名的含义?,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • C语言中数据的存储详解

    C语言中数据的存储详解

    这篇文章主要介绍了C语言中数据的存储详解的相关资料,需要的朋友可以参考下
    2023-08-08
  • C语言实现linux网卡检测改进版

    C语言实现linux网卡检测改进版

    这篇文章主要为大家详细介绍了C语言实现linux网卡检测的改进版,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • 一文详解C++中的mutable关键字

    一文详解C++中的mutable关键字

    在C++中mutable关键字正如字面意思所示,表示「可变的」之意,一般在以下两种情况中使用较多,一是修饰类中的变量,用来突破const的限制,二是在Lambda表达式中使用,用来捕获修改表达式之外的变量值,下面我们就针对这两种使用场景逐个介绍
    2023-10-10
  • kernel利用pt regs劫持seq operations的迁移过程详解

    kernel利用pt regs劫持seq operations的迁移过程详解

    这篇文章主要为大家介绍了kernel利用pt_regs劫持seq_operations进行迁移的过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • C语言rewind与fseek函数之随机读写文件的用法详解

    C语言rewind与fseek函数之随机读写文件的用法详解

    这篇文章主要介绍了C语言rewind与fseek函数之随机读写文件的用法详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09

最新评论