设置浮点数的显示精度&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显示的时间是不可控的.我们仅仅能改动他的显示样式和显示的位置,尽管他提供了一个显示时间的设置方法.可是那是没有效果 ...
随机推荐
- Magento后台界面全局样式修改之——font-weight
路径: \app\design\adminhtml\Magento\backend\web\app\setup\styles\less\lib\_variables.less
- Apache虚拟主机配置(多个域名访问多个目录)
Apache虚拟主机配置(多个域名访问多个目录) 为了方便管理虚拟主机,我决定使用一种方法,那就是修改httpd-vhosts.conf文件. 第一步首先要使扩展文件httpd-vhosts.conf ...
- Android OptionMenu
1.Java package com.fish.helloworld; import android.app.Activity; import android.content.Context; imp ...
- 九度OJ 1544 数字序列区间最小值
题目地址:http://ac.jobdu.com/problem.php?pid=1544 题目描述: 给定一个数字序列,查询任意给定区间内数字的最小值. 输入: 输入包含多组测试用例,每组测试用例的 ...
- activiti搭建(三)整合Modeler
转载请注明源地址:http://www.cnblogs.com/lighten/p/5878169.html 接上一章,activiti工作流引擎虽然运行了起来,但是什么都没有.activiti官方在 ...
- [原]SQL_实验2.1.3 清华大学出版社
本文出自:http://blog.csdn.net/svitter 实验目标:熟悉实体完整性,参照完整性,事务的处理: /*1.在数据库school表中建立表Stu_uion,进行主键约束,在没有违反 ...
- php安装redis扩展连接redis服务器
扩展包的下载地址:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz tar xf phpredis-2.2.4.tar.gz cd ...
- 删除linux系统服务
#删除服务的命令,[ServiceName]需要替换为实际的服务名称 sudo update-rc.d [ServiceName] remove 有时候安装sysv-rc-conf进行服务控制,但是在 ...
- 【积硅计划】http协议基础
http:超文本传输协议,它允许将超文本标记(html)文档从web服务器传送到浏览器.目前版本HTTP/1.1 http请求过程: proxy:代理服务器,网络信息的中转站.功能如下: ...
- php教程一,变量
php是一种动态脚本语言,比较适合web开发. php支持8种变量数据类型: 四种标量类型: boolean(布尔型) integer(整型) float(浮点型,也称作 double) string ...