如何输出小数点末尾有精度要求的0?

sherrik 2009-02-23 09:38:19
比如如何输出1.0?
...全文
290 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
sherrik 2009-02-23
  • 打赏
  • 举报
回复
3Q
[Quote=引用 14 楼 waizqfor 的回复:]
引用 11 楼 sherrik 的回复:
这个函数貌似会省去1.00后面两个0的吧
引用 10 楼 waizqfor 的回复:
引用 8 楼 sherrik 的回复:
谢谢各位,C的了解了,可如果用cout输出呢?

cout < <setprecision(X) < <a; //想保留几位 就改变X


C/C++ code
cout <<setprecision(2);
cout <<setiosflags(ios::fixed)<<a;
[/Quote]
waizqfor 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sherrik 的回复:]
这个函数貌似会省去1.00后面两个0的吧
引用 10 楼 waizqfor 的回复:
引用 8 楼 sherrik 的回复:
谢谢各位,C的了解了,可如果用cout输出呢?

cout < <setprecision(X) < <a; //想保留几位 就改变X
[/Quote]

cout <<setprecision(2);
cout <<setiosflags(ios::fixed)<<a;

xuyijun008 2009-02-23
  • 打赏
  • 举报
回复
好象输出小数是有问题的。如我要求保留2位小数,2.385应该是2.39
#include "stdio.h"

int main()
{

double amt=2.385;
amt=((amt*100.0+0.5));
printf("1amt===========[%f]\n",amt);
amt=(int)amt;
printf("2amt===========[%f]\n",amt);
amt=amt/100.00;
printf("3amt===========[%f]\n",amt);

}

-bash-3.00$ cc -o round45 round45.c
-bash-3.00$ round45
1amt===========[239.000000]
2amt===========[238.000000]
3amt===========[2.380000]
waizqfor 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sherrik 的回复:]
这个函数貌似会省去1.00后面两个0的吧
引用 10 楼 waizqfor 的回复:
引用 8 楼 sherrik 的回复:
谢谢各位,C的了解了,可如果用cout输出呢?

cout < <setprecision(X) < <a; //想保留几位 就改变X
[/Quote]
cout<<setiosflags(ios::fixed)<<a;先设置一下
sherrik 2009-02-23
  • 打赏
  • 举报
回复
这个函数貌似会省去1.00后面两个0的吧
[Quote=引用 10 楼 waizqfor 的回复:]
引用 8 楼 sherrik 的回复:
谢谢各位,C的了解了,可如果用cout输出呢?

cout < <setprecision(X) < <a; //想保留几位 就改变X
[/Quote]
waizqfor 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sherrik 的回复:]
谢谢各位,C的了解了,可如果用cout输出呢?
[/Quote]
cout<<setprecision(X)<<a; //想保留几位 就改变X
waizqfor 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 mosaic 的回复:]
引用 2 楼 waizqfor 的回复:
引用 1 楼 sherrik 的回复:
假设原来的如果是float型的1的话

printf("%f",1);


老大,这个有问题的。
[/Quote]
呵呵 刚才没试 瞎玩了

#include <stdio.h>
void main()
{
float aa=1;
printf("%.2f",aa);
}

sherrik 2009-02-23
  • 打赏
  • 举报
回复
谢谢各位,C的了解了,可如果用cout输出呢?
mosaic 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 waizqfor 的回复:]
引用 1 楼 sherrik 的回复:
假设原来的如果是float型的1的话

printf("%f",1);
[/Quote]

老大,这个有问题的。
mosaic 2009-02-23
  • 打赏
  • 举报
回复
float ff=10;

printf("%.2f", ff); //保留2位小数

printf("%.3f", ff); //保留3位小数

以此类推
sherrik 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 feng4206yu 的回复:]
C/C++ code
float f=1;
cout<<setiosflags(ios::fixed)<<f<<endl;
[/Quote]
这个好像是显示全部的浮点数位,如果我就想要小数点后面两位怎么办?
sagegz 2009-02-23
  • 打赏
  • 举报
回复

#include <stdio.h>

int main(){
float a = 1.0;
printf("%.1f",a); //指定输出一位小数
return 0;
}
feng4206yu 2009-02-23
  • 打赏
  • 举报
回复

float f=1;
cout<<setiosflags(ios::fixed)<<f<<endl;
waizqfor 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sherrik 的回复:]
假设原来的如果是float型的1的话
[/Quote]
printf("%f",1);
sherrik 2009-02-23
  • 打赏
  • 举报
回复
假设原来的如果是float型的1的话

65,210

社区成员

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

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