setprecision、fixed、showpoint的用法总结

首先要加头文件:iomanip

一:setprecision

作用:控制输出流显示浮点数的数字个数,setprecision(n)就是输出的n个数,会有四舍五入。

  比如:double s=20.7843000,

    cout<<setprecision(1)<<s<<endl;会输出2e+001,因为要输出一个数字,所以只有2.

    cout<<setprecision(2)<<s<<endl;会输出21。

    cout<<setprecision(3)<<s<<endl;会输出20.8。

    cout<<setprecision(6)<<s<<endl;会输出20.7843。

    cout<<setprecision(7)<<s<<endl;会输出20.7843。

    cout<<setprecision(8)<<s<<endl;会输出20.7843。

  可见,小数部分末尾为0时,是输不出来的!

  要想输出来,就得用showpoint了。

特别提示 :

(如果再在这些语句后面加个两个语句:

  cout<<1<<endl;

  cout<<1.00800<<endl;

  猜到会输出什么吗?

  第一条输出:1。不是浮点型。

  第二条为:1.008。承接setprecision(8)的这条规则语句。

  注:

  如果直接有语句

  int main()

  {

    cout<<1<<endl;

    cout<<1.00<<endl;

  }

  第一条输出:1。

  第二条也为:1。按整型输出 

二:setprecision与showpoint

  语法:在输出语句前声明:cout.setf(ios::showpoint);就行了!

  还比如:double s=20.7843000,

    cout.setf(ios::showpoint);

    cout<<setprecision(1)<<s<<endl;就会输出2.e+001,注意,2和e之间多了一个“.”。

    cout<<setprecision(2)<<s<<endl;会输出21.。多个点!

    cout<<setprecision(3)<<s<<endl;会输出20.8。

    cout<<setprecision(6)<<s<<endl;会输出20.7843。

    cout<<setprecision(7)<<s<<endl;会输出20.78430。

    cout<<setprecision(8)<<s<<endl;会输出20.784300。

  可见,就会输出想要的数据数目!

特别提示 :

(如果再在这些语句后面加个两个语句:

    cout<<1<<endl;

    cout<<1.0080<<endl;

  猜到会输出什么吗?

    第一条输出:1。不是浮点型。

    第二条也为:1.0080000。承接setprecision(8)的这条规则语句。

三:setprecision与fixed

  如果想要保留几位小数,那setprecision就得与fixed合作了!!

  语法:在输出语句前声明:cout.setf(ios::fixed);

  比如:double s=20.7843909

    cout.setf(ios::fixed);

    cout<<setprecision(1)<<s<<endl;就会输出2.8  。

    cout<<setprecision(2)<<s<<endl;会输出21.78。多个点!

    cout<<setprecision(3)<<s<<endl;会输出20.784。

    cout<<setprecision(6)<<s<<endl;会输出20.784391。

    cout<<setprecision(7)<<s<<endl;会输出20.7843909。

    cout<<setprecision(8)<<s<<endl;会输出20.78439090。

特别提示 :

(如果也再在这些语句后面加个两个语句:

    cout<<1<<endl;

    cout<<1.008<<endl;

  猜到会输出什么吗?

  第一条输出:1。

  第二条为:1.00800000。

  就是承接了setprecision(8)的这条规则语句,是浮点型的都会保留8个小数。是整型的还是整型!)

  语句也可以写成:cout<<fixed<<setprecision(2)<<s<<endl;

就算后面的语句没有写<<fixed,同样会按有<<fixed处理。

比如有语句:

  cout<<fixed<<setprecision(2)<<s<<endl;

  A:cout<<setprecision(7)<<s<<endl;

  B:cout<<setprecision(8)<<s<<endl;

  AB语句均会按保留7个,8个小数处理,不会再按有7或8个浮点数处理。

如果下面有语句c:

  cout<<1.008<<endl;也会保留8个小数。

四:setprecision、showpoint与fixed

  {

    cout<<fixed<<setprecision(2)<<123.456<<endl;//输出的结果是123.46 
    cout<<showpoint<<12345.0006666<<endl;//输出12345.0 
    cout<<fixed<<setprecision(2)<<123.456<<endl;

  }

比如:double s=20.7843909

1.有语句

  cout<<setprecision(2)<<s<<endl;//输出21

  cout<<fixed<<s<<endl;//输出20.78

2.有语句:

  cout<<setprecision(2)<<s<<endl;//输出21

  cout<<showpoint<<s<<endl;//输出21.(有个点)

3.有语句:

  cout<<fixed<<s<<endl;//输出20.78391 
  cout<<showpoint<<s<<endl;//输出20.78391 
4.有语句:

  cout<<setprecision(2)<<s<<endl;//输出21 
  cout<<fixed<<s<<endl;//输出20.78 
  cout<<showpoint<<s<<endl;//输出20.78

5.有语句:

  cout<<setprecision(2)<<s<<endl;//输出21 
  cout<<showpoint<<s<<endl;//21.(有个点) 
  cout<<fixed<<s<<endl;//20.78

时间: 2024-10-17 17:09:55

setprecision、fixed、showpoint的用法总结的相关文章

C++ setprecision fixed showpoint

首先 #include <iomanip> 一:setprecision 作用:控制输出流显示浮点数的数字个数,setprecision(n)就是输出的n个数,会有四舍五入 double s=20.7843000; cout<<setprecision(1)<<s<<endl;会输出2e+001,因为要输出一个数字,所以只有2 cout<<setprecision(2)<<s<<endl;会输出21. cout<&l

css中table-layout:fixed 属性的用法

table-layout:fixed 属性的用法:如果想要一个table固定大小,里面的文字强制换行(尤其是在一长串英文文本,并且中间无空格分隔的情况下),以达到使过长的文字 不撑破表格的目的,一般是使用样式:table-layout:fixed.但是在Firefox下面,会有一些问题,参考Gmail的一些做法,做了几个 测试,得出一种解决办法. 例1:(IE浏览器)普通的情况 CODE:<table border="1" width="80"><

setprecision **fixed

#include <iostream> #include <iomanip> using namespace std; int main( void ) { const double value = 12.3456789; cout << value << endl; // 默认以6精度,所以输出为 12.3457 cout << setprecision(4) << value << endl; // 改成4精度,所以输

C++ showpoint操作符

默认情况下,浮点数不会显示尾数 0,并且如果没有小数部分的浮点数则不显示小数点.例如,以下代码: double x = 456.0; cout << x << endl; 将仅显示 456. 现在介绍另一个有用的操作符 showpoint,它允许这些默认值被覆盖.当使用 showpoint 时,表示打印浮点数的小数点和小数位数,即使显示的数值没有小数点.以下是应用了 showpoint 操作符的代码示例: double x = 456.0; cout << showpo

poj3122-Pie(二分法+贪心思想)

一,题意: 有f+1个人(包括自己),n块披萨pie,给你每块pie的半径,要你公平的把尽可能多的pie分给每一个人 而且每个人得到的那份pie必须是从同一个pie上得到的,不能拼凑,多余的边角丢掉.二,思路: 1,输入,并找出最大体积的pie 2,二分法记录每一种情况的体积,及能分给几个人, 贪心的思想: 先取能分给n-1个人的最大体积,逐渐减少每份pie的体积 直到最接近n个人都能获得的pie的最大的体积 3, 输出.三,步骤: 1,输入,max存储最大的pie体积 2,二分法: i,退出条

假期周进度报告三(7.15-7.21)

一.本周大部分的时间用在了这几个方面 1.看了3章java参考电子书(基本上是基础部分) 2.做PTA上的题目, 3.看了经典图书<大道至简>的前三章 每天除了写PTA大概1.5个小时的学习,1个小时左右的时间会来看java电子书,剩下的时间用来看经典图书 二.本周的收获 1.在做PTA的过程中又学到的小知识 getchar()会吞掉字符? int:所占字节数为:4, 表示范围为:-2147483648~2147483647 short int:所占字节数为:2,表示范围为:-32768-+3

c++ cout 保留小数点位

需要头文件 <iomanip> 输出时需要用 fixed 和 setprecision() fixed代表输出浮点数,setprecision()设置精度. #include <iostream> #include <iomanip> #include <cstdio> using namespace std; int main(int argc, char const *argv[]) { printf("%.2lf\n", 12.34

动态规划之投资策略规划

你所掌握的算法知识帮助你从Acme计算机公司获得了一份令人兴奋的工作,签约奖金1万美元.你决定利用这笔钱进行投资,目标是10年后获得最大回报.你决定请Amalgamated投资公司管理你的投资,该公司的投资回报规则如下.该公司提供n种不同的投资,从1~n编号.在第j年年底,比你会得到drij美元.回报率是有保证的,即未来10年每种投资的回报率均已知.你每年只能做出一次投资决定.在每年年底,你既可以将钱继续投入到上一年选择的投资种类中,也可以转移到其他投资中(转移到已有的投资种类,或者新的投资种类

C++ 标准库之 iomanip 、操作符 ios::fixed 以及 setprecision 使用的惨痛教训经验总结

本菜鸡自从退役之后就再也没怎么敲过 C++ 代码,在 C++ 语言下,求解关于浮点数类型的问题时,之前有碰到类似的情况,但是似乎都没有卡这块的数据,基本上用一个 setprecision 函数保留几位有效数字就 AC 了.但这次在计算任意五个数的平均值时卡在了一组数据上,问题如下: #include <iostream> #include <iomanip> #include <stdio.h> using namespace std; int main(){ floa