| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1738 人关注过本帖
标题:输出的精度设置
只看楼主 加入收藏
wenwentidere
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-7-7
结帖率:0
收藏
 问题点数:0 回复次数:2 
输出的精度设置
streamsize prec=cout.precision(3);  cout.precision(3)是把精度设成3么?那prec不也变成3了?
cout << sum <<endl;
cout.precision(prec); 如果prec已经变成3了,那么cout.precision(prec);不是不能把精度设回默认值?

求详解
2012-07-08 10:01
wenwentidere
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-7-7
收藏
得分:0 
回复 楼主 wenwentidere
cout.precision(3); 返回的是原先的精度吗?这样的话就说的通了
2012-07-08 11:03
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:0 
以前没见这么用过,所以百度了一下
程序代码:
01.#include <iostream>  
02.#include <iomanip>  
03.using namespace std; 
04. 
05.int main( void ) 
06.{ 
07.    const double value = 12.3456789; 
08. 
09.    cout << value << endl; // 默认以6精度,所以输出为 12.3457  
10.    cout << setprecision(4) << value << endl; // 改成4精度,所以输出为12.35  
11.    cout << setprecision(8) << value << endl; // 改成8精度,所以输出为12.345679  
12.    cout << fixed << setprecision(4) << value << endl; // 加了fixed意味着是固定点方式显示,所以这里的精度指的是小数位,输出为12.3457  
13.    cout << value << endl; // fixed和setprecision的作用还在,依然显示12.3457  
14.    cout.unsetf( ios::fixed ); // 去掉了fixed,所以精度恢复成整个数值的有效位数,显示为12.35  
15.    cout << value << endl; 
16.    cout.precision( 6 ); // 恢复成原来的样子,输出为12.3457  
17.    cout << value << endl; 
18.    cout<<fixed<<value<<endl; 
19.}  

查了一下std::ios_base::precision,才知道precision的两种用法
streamsize precision() const; (1)   
streamsize precision( streamsize new_precision ); (2)
返回值是当前精度,参数传递的是需要设置为的精度。

又一件我不知道的事


从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2012-07-08 12:53
快速回复:输出的精度设置
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032229 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved