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++中默认析构函数的使用进行了详细的分析介绍。需要的朋友参考下
    2013-05-05
  • C语言 哈希查找详解(哈希表的创建、处理冲突、查找等)

    C语言 哈希查找详解(哈希表的创建、处理冲突、查找等)

    哈希表是一种非常重要的数据结构,并在大量的计算机科学和工程应用中发挥重要作用,了解哈希表的原理和实现方式,将有助于我们更好地理解这个数据结构及如何应用它来解决实际问题,这篇文章主要介绍了C语言 哈希查找(哈希表的创建、处理冲突、查找等),需要的朋友可以参考下
    2024-01-01
  • Qt自定义控件实现圆圈加载进度条

    Qt自定义控件实现圆圈加载进度条

    这篇文章主要为大家详细介绍了Qt自定义控件实现圆圈加载进度条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • VC创建圆角dialog的实现方法

    VC创建圆角dialog的实现方法

    这篇文章主要介绍了VC创建圆角dialog的实现方法,结合实例形式分析了圆角dialog对话框的创建步骤与相关操作技巧,需要的朋友可以参考下
    2016-08-08
  • VC++实现View内容保存为图片的方法

    VC++实现View内容保存为图片的方法

    这篇文章主要介绍了VC++实现View内容保存为图片的方法,涉及VC++中Bitmap类的save方法相关使用技巧,需要的朋友可以参考下
    2016-08-08
  • C语言中如何通过指针参数返回值

    C语言中如何通过指针参数返回值

    这篇文章主要介绍了C语言中如何通过指针参数返回值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • C语言中回调函数和qsort函数的用法详解

    C语言中回调函数和qsort函数的用法详解

    这篇文章主要为大家详细介绍一下C语言中回调函数和qsort函数的用法教程,文中的示例代码讲解详细,对我们学习C语言有一定帮助,需要的可以参考一下
    2022-07-07
  • C++高级数据结构之二叉查找树

    C++高级数据结构之二叉查找树

    这篇文章主要介绍了C++高级数据结构之二叉查找树,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • c语言中字符串与字符串数组详解

    c语言中字符串与字符串数组详解

    在C语言当中,字符串数组可以使用char a[] [10]; 或者char *a[]; 表示,下面这篇文章主要给大家介绍了关于c语言中字符串与字符串数组的相关资料,需要的朋友可以参考下
    2021-11-11
  • 深入分析C++派生类中的保护成员继承

    深入分析C++派生类中的保护成员继承

    这篇文章主要介绍了C++派生类中的保护成员继承,深入对C++面向对象编程的继承机制进行了解析,需要的朋友可以参考下
    2015-09-09

最新评论