fixed使用定点计数法什么意思?

xwhmm 2012-03-06 05:21:43
#include <iostream>
using namespace std;
int main()
{
float y=3.56000f;
cout.precision(0);
cout.unsetf(ios_base::showpoint);
cout<<"y:"<<fixed<<y<<endl;
system("pause");
return 0;
}
运行结果:4
cout<<"y:"<<fixed<<y<<endl;这句中的fixed是什么意思?
我把fixed去了这后结果是:3.56
看解释说这个是使用定点计数法?什么意思?
...全文
318 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lirunfa 2012-03-06
  • 打赏
  • 举报
回复
具体怎么样 自己上机试验下
xwhmm 2012-03-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ppsharp 的回复:]

按有效位输出是 setprecision,按小数位数输出也是setprecision,但到底是谁取决于fixed。
cout << resetiosflags(ios::fixed) << setprecision(n) << float-point-number; 是按n位有效数输出
cout << setiosflags(ios::fixed) << setprecision(n) <<……
[/Quote]

太有用了,谢谢,你的讲解我已经知道 了,谢谢.....
ppsharp 2012-03-06
  • 打赏
  • 举报
回复
按有效位输出是 setprecision,按小数位数输出也是setprecision,但到底是谁取决于fixed。
cout << resetiosflags(ios::fixed) << setprecision(n) << float-point-number; 是按n位有效数输出
cout << setiosflags(ios::fixed) << setprecision(n) << float-point-number; 是按n位小数输出

看了这个应该能明白

测试代码:
#include <iostream>
#include <iomanip>
using namespace std;

int main( void )
{
const double value = 12.3456789;

cout << value << endl; // 默认以6精度,所以输出为 12.3457
cout << setprecision(4) << value << endl; // 改成4精度,所以输出为12.35
cout << setprecision(8) << value << endl; // 改成8精度,所以输出为12.345679
cout << fixed << setprecision(4) << value << endl; // 加了fixed意味着是固定点方式显示,所以这里的精度指的是小数位,输出为12.3457
cout << value << endl; // fixed和setprecision的作用还在,依然显示12.3457
cout.unsetf( ios::fixed ); // 去掉了fixed,所以精度恢复成整个数值的有效位数,显示为12.35
cout << value << endl;
cout.precision( 6 ); // 恢复成原来的样子,输出为12.3457
cout << value << endl;
}

xwhmm 2012-03-06
  • 打赏
  • 举报
回复
求解释???

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧