设置浮点数的显示精度&precision(0)
/*
设置浮点数的显示精度
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)的更多相关文章
- xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题)
xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题) 前两天为了适配 iOS10 的系统 我将xcode 7.3 升级到了 xcode 8.0 但是 ...
- js不需要知道图片宽高的懒加载方法(经过实际测试,不加宽高仍然是无法正常加载的,设置height:auto,height:100%,仍然显示高度为0)
js不需要知道图片宽高的懒加载方法 懒加载是如何实现的? - 简书https://www.jianshu.com/p/e86c61468285找到一个不需要知道图片宽高的懒加载方法了(经过实际测试,不 ...
- SPSS输出结果如何在word中设置小数点前面显示加0
SPSS输出结果如何在word中设置小数点前面显示加0 在用统计分析软件做SPSS分析时,其输出的结果中,如果是小于1(绝对值)的数,那么会默认输出不带小数点的数值.例如0.362和 -0.141被显 ...
- Python浮点数控制小数精度
将精度高的浮点数转换成精度低的浮点数. 1.round()内置方法 这个是使用最多的,刚看了round()的使用解释,也不是很容易懂.round()不是简单的四舍五入的处理方式. For the bu ...
- javascript中可处理的浮点数的最高精度(和小数的一些小特性)
1.之前在度娘那找了一下关于javascript中可处理的浮点数的最高精度的问题,但找了好久也找不到,于是自己 小小的研究了一下,之前以为是17,后来测到18,再后来又测到19,经过一系列的改写,得到 ...
- 设置Nginx+php-fpm显示错误信息
Begin 最近在用PHP写后台程序,但是有错误不会显示简直坑爹,全都是200这样的错误代码而已= =... 于是 于是就搜索如何打开错误显示,然后就在博客里面记录一下 修改配置文件 /etc/php ...
- VC++ 设置控件显示文本的前景色、背景色以及字体
在每个控件开始绘制之前,都会向其父窗口发送WM_CTLCOLOR通告消息,在该消息的处理函数中,可以设置控件显示文本的前景色.背景色以及字体.该消息处理函数还要求返回一个画刷的句柄,用于在控件具体的绘 ...
- JavaScript 浮点数及运算精度调整总结
JavaScript 浮点数及运算精度调整总结 JavaScript 只有一种数字类型 Number,而且在Javascript中所有的数字都是以IEEE-754标准格式表示的.浮点数的精度问题不是J ...
- Android中通过反射来设置Toast的显示时间
这个Toast的显示在Android中的用途还是非常大的,同一时候我们也知道toast显示的时间是不可控的.我们仅仅能改动他的显示样式和显示的位置,尽管他提供了一个显示时间的设置方法.可是那是没有效果 ...
随机推荐
- CAPI3 HTTP文件服务器搭建(共享目录版)
IIS中运行的程序和WebDAV访问的虚拟目录是共享目录的情况下,非常容易报错,设置如下: 一.程序访问共享目录: 1.配置本地用户IIS权限 2.添加应用池 3.配置连接标示 4.站点关联此应用池即 ...
- HTML5上传图片预览
<!DOCTYPE html> <html> <head> <title>HTML5上传图片预览</title> <meta http ...
- javascript中for/in循环及使用技巧
JavaScript 支持不同类型的循环: for - 循环代码块一定的次数 for/in - 循环遍历对象的属性 while - 当指定的条件为 true 时循环指定的代码块 do/while - ...
- CentOS 5.X安装LAMP最高版本环境
#------------CentOS 5.X安装LAMP最高版本环境------------------#! /bin/sh #安装Apacheyum install httpd -y#1.关闭se ...
- C# 判断一字符串是否为合法数字(正则表达式)
判断一个字符串是否为合法整数(不限制长度) public static bool IsInteger(string s) { string pattern = @"^\d*$"; ...
- luigi学习1
一.luigi介绍 luigi是基于python语言的,可帮助建立复杂流式批处理任务管理系统.这些批处理作业典型的有hadoop job,数据库数据的导入与导出,或者是机器学习算法等等. luigi的 ...
- 17) JMS: java Message Service(Java消息服务)
JMS是一个标准,就像EJB,有很多开源的,商业的实现,ms技术对应的规范是jsr914,规范的实现称为jms provider,常见的实现有ActiveMQ.JBoss MQ.IBM We ...
- xml文件对应的DTD学习
DTD文件: 1.DTD文档主要由(元素,属性,实体,PCDATA,CDATA) 2.声明一个元素:<!ELEMENT 元素名称 (元素内容)> eg: <!ELEMENT pers ...
- 关于js中this的疑问
学习bootstrap.js源码中被js里边的this绕的有点晕 /* ================================================================ ...
- hdu 2066 一个人的旅行
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2066 一个人的旅行 Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷 ...