/*
    设置浮点数的显示精度
   
cout.precision(int)可以设置浮点数的显示精度(不包括小数点)
   
    注:

1.如果设置的精度大于浮点数的位数,如果浮点数能根据IEEE754精确表示,则补零;如果浮点数不能精确表示,则尽量接近
       
2.如果设置的精度小于浮点数的位数,采用科学计数法表示
       
3.precision(int)单独使用,表示设置有效位数;与fixed或者scientific连用,表示设置小数位的精度
       
4.precision(int)会一直生效
       
5.float浮点数默认有效位数为6位,不包括小数点,即默认设置有setprecision(6),此默认设置还包含双精度浮点数
       
6.precision(0)的问题:
        在VS中,
       
如果precision(0)直接使用,则等同于设置默认有效位数,即precision(6);
       
如果与fixed连用,则都表示设置小数点后的精度为0,即没有小数位;
       
如果与scientific连用,则等同于设置默认有效位数,即precision(6),即表示设置小数点后的精度为6
       
综上,在VS中设置精度为0时,存在默认精度6和设置精度0的显隐性问题,只有当与fixec连用,设置精度0才会显示出来;其他情况下,
   
显示的都是默认精度6
        
       
在dev中设置精度0时,存在设置精度1和设置精度0的显隐性问题,当与fixed或者scientific连用,设置精度0显性;其他情况下,设置
   
精度1显性
*/

//基本例子
#include <iostream>
using namespace std;
int main()
{
float p1=3.1415926f;
float p2=1234.56789f;
cout<<p1<<endl; //3.14159
cout<<p2<<endl; //1234.57
cout.precision(13);
cout<<p1<<endl; //3.141592502594
cout<<p2<<endl; //1234.567871094
cout.precision(3);
cout<<p1<<endl; //3.14
cout<<p2<<endl; //1.23e+003 return 0;
}
//VS中precision(0)的情形,存在precision(0)与precision(6)的显隐性问题。只有当与fixed连用时,precision(0)才为显性
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
float y=3.460f;
cout.precision(0);
cout<<y<<endl; //3.46,precision(6)显性
cout<<scientific<<y<<endl; //3.460000e+000,precision(6)显性
cout<<resetiosflags(ios::floatfield)<<y<<endl; //3.46,precision(6)显性
cout<<fixed<<y<<endl; //3,precision(0)显性
cout<<resetiosflags(ios::floatfield)<<y<<endl; //3.46,precision(6)显性 cout<<endl;
float z=0.3460f;
cout.precision(0);
cout<<z<<endl; //0.346,precision(6)显性
cout<<scientific<<z<<endl; //3.460000e-001,precision(6)显性
cout<<resetiosflags(ios::floatfield)<<z<<endl; //0.346,precision(6)显性
cout<<fixed<<z<<endl; //0,precision(0)显性
cout<<resetiosflags(ios::floatfield)<<z<<endl; //0.346,precision(6)显性 system("pause");
return 0;
}
//precision(0)在dev中的情形,存在precision(0)与precision(1)的显隐性问题。当与fixed或scientific连用时,precision(0)为显性
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
float y=3.460f;
cout.precision(0);
cout<<"y:"<<y<<endl; //3,precision(1)显性,即有效位数为1
cout<<"y:"<<scientific<<y<<endl; //3e+000,precision(0)显性,即小数点后的位数为0
cout<<"y:"<<resetiosflags(ios::floatfield)<<y<<endl; //3,precision(1)显性,即有效位数为1
cout<<"y:"<<fixed<<y<<endl; //3,precision(0)显性,即小数点后的位数为0
cout<<"y:"<<resetiosflags(ios::floatfield)<<y<<endl; //3,precision(1)显性,即有效位数为1 cout<<endl;
float z=0.3460f;
cout.precision(0);
cout<<z<<endl; //0.3,precision(1)显性,即有效位数为1
cout<<scientific<<z<<endl; //3e-001,precision(0)显性,即小数点后的位数为0
cout<<resetiosflags(ios::floatfield)<<z<<endl; //0.3,precision(1)显性,即有效位数为1
cout<<fixed<<z<<endl; //0,precision(0)显性,即小数点后的位数为0
cout<<resetiosflags(ios::floatfield)<<z<<endl; //0.3,precision(1)显性,即有效位数为1
return 0;
}

设置浮点数的显示精度&precision(0)的更多相关文章

  1. xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题)

    xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题) 前两天为了适配 iOS10 的系统 我将xcode 7.3 升级到了 xcode 8.0 但是 ...

  2. js不需要知道图片宽高的懒加载方法(经过实际测试,不加宽高仍然是无法正常加载的,设置height:auto,height:100%,仍然显示高度为0)

    js不需要知道图片宽高的懒加载方法 懒加载是如何实现的? - 简书https://www.jianshu.com/p/e86c61468285找到一个不需要知道图片宽高的懒加载方法了(经过实际测试,不 ...

  3. SPSS输出结果如何在word中设置小数点前面显示加0

    SPSS输出结果如何在word中设置小数点前面显示加0 在用统计分析软件做SPSS分析时,其输出的结果中,如果是小于1(绝对值)的数,那么会默认输出不带小数点的数值.例如0.362和 -0.141被显 ...

  4. Python浮点数控制小数精度

    将精度高的浮点数转换成精度低的浮点数. 1.round()内置方法 这个是使用最多的,刚看了round()的使用解释,也不是很容易懂.round()不是简单的四舍五入的处理方式. For the bu ...

  5. javascript中可处理的浮点数的最高精度(和小数的一些小特性)

    1.之前在度娘那找了一下关于javascript中可处理的浮点数的最高精度的问题,但找了好久也找不到,于是自己 小小的研究了一下,之前以为是17,后来测到18,再后来又测到19,经过一系列的改写,得到 ...

  6. 设置Nginx+php-fpm显示错误信息

    Begin 最近在用PHP写后台程序,但是有错误不会显示简直坑爹,全都是200这样的错误代码而已= =... 于是 于是就搜索如何打开错误显示,然后就在博客里面记录一下 修改配置文件 /etc/php ...

  7. VC++ 设置控件显示文本的前景色、背景色以及字体

    在每个控件开始绘制之前,都会向其父窗口发送WM_CTLCOLOR通告消息,在该消息的处理函数中,可以设置控件显示文本的前景色.背景色以及字体.该消息处理函数还要求返回一个画刷的句柄,用于在控件具体的绘 ...

  8. JavaScript 浮点数及运算精度调整总结

    JavaScript 浮点数及运算精度调整总结 JavaScript 只有一种数字类型 Number,而且在Javascript中所有的数字都是以IEEE-754标准格式表示的.浮点数的精度问题不是J ...

  9. Android中通过反射来设置Toast的显示时间

    这个Toast的显示在Android中的用途还是非常大的,同一时候我们也知道toast显示的时间是不可控的.我们仅仅能改动他的显示样式和显示的位置,尽管他提供了一个显示时间的设置方法.可是那是没有效果 ...

随机推荐

  1. UML的9种图例解析

    摘自: http://blog.csdn.net/fatherican/article/details/44966891 UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类 ...

  2. GET POST 区别详解

    Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据. 2. Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而 ...

  3. javaSE第一天

    第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5)语言    2 (6)人机交 ...

  4. CTest

    一.初识CTest CTest是CMake集成的一个测试工具,在使用CMakeLists.txt文件编译工程的时候,CTest会自动configure.build.test和展现测试结果 CTest有 ...

  5. dedecms 调用channel子栏目的id问题

    dedecms 说明文档:http://www.dedecms.com/archives/templethelp/help/taghelp.htm {dede:channel type='son' t ...

  6. Clearing Search Values

      Use the SearchClear() method which is part of the Field class to clear search values on a particul ...

  7. 设置field的背景颜色以及对stylesheet的理解

    今天遇到一个需求:在做页面输入验证的时候,如果用户没有输入某个项,那么这个项显示为红色,一直没头绪,也找peoplebook,发现field有一个style的方法,后来又在谷歌上找,终于找到了方法: ...

  8. C# 随机颜色的方法

    public string GetRandomColor() { Random RandomNum_First = new Random((int)DateTime.Now.Ticks); // 对于 ...

  9. 使用maven, myeclipse工具构建spring mvc项目

    一.使用myeclipse 创建一个新的 maven项目. (ps:1.在filter过滤的时候输入 webapp 选择"maven-archetype-webapp". 2.在m ...

  10. DevExpress 表中数据导出

    gridView1.ExportToXlsx("SampleStock.xlsx"); if (true) { DevExpress.XtraEditors.XtraMessage ...