C++输出问题:保留两位小数

 更新时间:2022年11月10日 09:04:34   作者:海轰Pro  
这篇文章主要介绍了C++输出问题:保留两位小数方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

输出:保留两位小数

问题

已知a=0.20001,输出:0.20

思路

setprecision:功能是控制输出流显示浮点数的有效数字个数,注意是有效数字。如果和fixed合用的话,可以控制小数点后面有几位。

这下这知道为什么输出是0.2了吧,必须是输出有效数字,后面的0要省略。如果a=0.21001,直接用就输出是0.21。

为了得到0.20,在这里就要用到fixed了。

代码

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    float a = 0.20001;
    cout.setf(ios::fixed);
    cout << "a=" <<fixed<< setprecision(2) << a <<endl; //输出结果为a=0.20
    cout.unsetf(ios::fixed);
    cout << "a=" << setprecision(2) << a <<endl; //输出结果为a=0.2
    return 0;
}

C++小数保留问题

由于在做题的时候设计到输出格式的问题,省的每次都去找,所以自己稍微记录一下

主要使用工具:#include中的setprecision() 和 setiosflags()

使用方法

  • setprecision()

顾名思义:就是设定精度。用来控制输出的数的位数(从左到右的),自动四舍五入。且不保留小数后的0。比如:

double pi = 3.1415926000;
语句输出
cout<<setprecision(1)<<pi<<endl;3
cout<<setprecision(2)<<pi<<endl;3.1

但是这种形式如果有多位数,会采用科学计数法来表示,比如

double n=123.65
cout<<setprecision(2)<<n<<endl;

输出1.2e02

所以如果整数部分不确定,或者要求末尾保留0的时候,那我们就无法准确保留适当的小数位数,因此我们需要另一个函数:

  • setiosflags():这是一个格式控制函数,它有很多参数,可以实现不同的输出操作

在这里主要用到其中两个:fixed 和 showpoint。

首先说fixed,以定点方式显示实数,即显示整数部分。举个栗子:

double pi = 3.1415926000;
语句输出
cout<<setprecision(1)<<pi<<endl;3.1
cout<<setprecision(2)<<pi<<endl;3.14
cout<<setprecision(10)<<pi<<endl;3.1415926
double n=123.65
cout<<setprecision(1)<<n<<endl;

输出123.6

可见此时setprecision()已经是只控制小数位数了,但是:它仍然不能保留0。这时就有了showpoint。

还是那个例子:

cout<<setiosflags(ios::fixed|ios::showpoint)<<setprecision(10)<<pi<<endl;

输出 3.1415926000

这样我们就能完全控制小数位数的输出了。

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

相关文章

  • c++版线程池和任务池示例

    c++版线程池和任务池示例

    这篇文章主要介绍了c++版线程池和任务池,实现任务执行完毕线程退出.在linux下压力测试通过
    2014-03-03
  • ubuntu中打开终端的三种解决方法

    ubuntu中打开终端的三种解决方法

    本篇文章是对ubuntu中打开终端的三种方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • QT结合百度Ai实现车牌识别

    QT结合百度Ai实现车牌识别

    当下的人工智能势头很盛,本文主要介绍了QT结合百度Ai实现车牌识别,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03
  • C++实现图书管理系统课程设计(面向对象)

    C++实现图书管理系统课程设计(面向对象)

    这篇文章主要为大家详细介绍了C++实现图书管理系统课程设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • C语言链表实现学生管理系统

    C语言链表实现学生管理系统

    这篇文章主要为大家详细介绍了C语言链表实现学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • 详解C++中new运算符和delete运算符的使用

    详解C++中new运算符和delete运算符的使用

    这篇文章主要介绍了C++中new运算符和delete运算符的使用,文章来自于微软开发者文档,因而根据Visual C++的一些特性来进行讲解,需要的朋友可以参考下
    2016-01-01
  • 浅析C++ 数据类型

    浅析C++ 数据类型

    这篇文章主要介绍了C++ 数据类型的相关资料,帮助大家更好的理解和学习c++,感兴趣的朋友可以了解下
    2020-08-08
  • C++数据结构之二叉搜索树的实现详解

    C++数据结构之二叉搜索树的实现详解

    二叉搜索树作为一个经典的数据结构,具有链表的快速插入与删除的特点,同时查询效率也很优秀,所以应用十分广泛。本文将详细讲讲二叉搜索树的C++实现,需要的可以参考一下
    2022-08-08
  • C语言之详解静态变量static

    C语言之详解静态变量static

    在C语言中static是用来修饰变量和函数的,这篇文章详细介绍了static主要作用,文章中有详细的代码实例,需要的朋友可以参考阅读
    2023-04-04
  • VS+QT编译环境中字符乱码问题解决方法

    VS+QT编译环境中字符乱码问题解决方法

    编码就是把⼀个字符编码成二进制码存起来的方式,而解码就是把这个二进制码按照原本编码的规则还原成原来的字符,这篇文章主要介绍了VS+QT编译环境中字符乱码问题详解,需要的朋友可以参考下
    2024-01-01

最新评论