/*
    设置浮点数的显示精度
   
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. POJ C程序设计进阶 编程题#2:四大湖

    编程题#2:四大湖 来源: POJ(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 我国有4大 ...

  2. MySQL连接语法

    http://www.cnblogs.com/hanzhaoxin/p/3590642.html 内连接:INNER  JOIN 内连接为 两个表中必须都同时满足条件 内连接,即最常见的等值连接自然连 ...

  3. mutex 简单介绍

    “mutex”是术语“互相排斥(mutually exclusive)”的简写形式,也就是互斥量. 当两个或更多线程需要同时访问一个共享资源时,系统需要使用同步机制来确保一次只有一个线程使用该资源.M ...

  4. encodeURIComponent编码后java后台的解码

    解决方法一: JavaScript: window.self.location="searchbytext.action?searchtext="+encodeURICompone ...

  5. 深入浅出MongoDB(二)概述

    上次的博文深入浅出MongoDB(一)NoSQL中我们已经简单介绍了一下NoSQL的基本概念,这次我们来了解一下MongoDB的相关概念. 1.简介 MongoDB是一款由C++编写的高性能.开源.无 ...

  6. ThinkPHP之中getlist方法实现数据搜索功能

    自己在ThinkPHP之中的model之中书写getlist方法,其实所谓的搜索功能无非就是数据库查询之中用到的like  %string%,或者其他的 字段名=特定值,这些sql语句拼接在and语句 ...

  7. Sublime Text2 注册码 汉化 配置lua开发环境

    1.注册  help --> Enter License ----- BEGIN LICENSE ----- Andrew Weber Single User License EA7E-8556 ...

  8. 用过的一些js函数[备份用的]

    1.类似php的htmlspecialchars函数,如需要可以自行增加其它代替 function _htmlspecialchars(str) { str = str.replace(/&/ ...

  9. php 提示Warning: mysql_fetch_array() expects

    我的高度代码如下 include("conn.php"); if(!empty($_GET['id'])){         $sql="select * from ne ...

  10. leetCode刷题记录

    (1)Linked List Cycle Total Accepted: 13297 Total Submissions: 38411 Given a linked list, determine i ...