float小数点后四舍五入

lippl 2010-08-29 02:54:16
有一个float型数组,现在里面的值范围为0-1之间
形式为0.105556等,想四舍五入到0.11这样,即小数点后两位
0.110000也可以,请问怎么实现呢?!
谢谢~
...全文
859 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wing_0706 2010-08-29
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lester_2008 的回复:]
num = (int)(num * 100 + 0.5)/100.0;

我这样的就是四舍五入啊
[/Quote]
其实合起来 就和这个 一样的。。。
new = (int)(old * 100 + 0.5)/100.0;
wing_0706 2010-08-29
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lippl 的回复:]
谢谢大家,我不需要printf输入的
用了wing_0706提供的

int b = ( int )( old * 100 )
float new = (float) b / 100.0

但好像是直接舍去了后面的,有没有四舍五入的方法呢
[/Quote]
int b = ( int )( old * 100 + 0.5 )
四舍五入 一般都这么干。。
小菩提的尾巴 2010-08-29
  • 打赏
  • 举报
回复
num = (int)(num * 100 + 0.5)/100.0;

我这样的就是四舍五入啊
lippl 2010-08-29
  • 打赏
  • 举报
回复
谢谢大家,我不需要printf输入的
用了wing_0706提供的

int b = ( int )( old * 100 )
float new = (float) b / 100.0

但好像是直接舍去了后面的,有没有四舍五入的方法呢
zhichengsuxian 2010-08-29
  • 打赏
  • 举报
回复
我也给你个例子
#include<stdio.h>
int main()
{
float a=2.34798;
printf("%.2f",a);
return 0;
}
lippl 2010-08-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wing_0706 的回复:]

错了错了。。
b = ( int )( a * 100 )
a = (float) b / 100.0
[/Quote]

谢谢,这样是4舍5入 还是直接去掉呢
小菩提的尾巴 2010-08-29
  • 打赏
  • 举报
回复
给你个我写的例子吧
#include<stdio.h>
int main()
{
float num = 0.167532;

num = (int)(num * 100 + 0.5)/100.0;

printf("%f", num);
//或者printf("%.2f", num);

return 0;
}
仅供参考。。。
wing_0706 2010-08-29
  • 打赏
  • 举报
回复
错了错了。。
b = ( int )( a * 100 )
a = (float) b / 100.0
wing_0706 2010-08-29
  • 打赏
  • 举报
回复
呃你要这样啊。。。
a 是浮点数 b 是整数。。。
那就 b = ( int )( a * 100 )
a = (float)( b / 100)

我想的思路。。。
lippl 2010-08-29
  • 打赏
  • 举报
回复
我不到pringf中输出怎么写啊

float new = %.2f,old
.....
wing_0706 2010-08-29
  • 打赏
  • 举报
回复
%.2f
中间的2就是保留 两位小数的意思 在 printf 里面输出。。
lippl 2010-08-29
  • 打赏
  • 举报
回复
能不能详细一点啊,
我只要小数点第3为四舍五入到第2位就行了,保留小数点后两位

甚至不四舍五入,直接到后面的去掉也行

处理后再保存到新的数组里面
周药师 2010-08-29
  • 打赏
  • 举报
回复
printf("%.2f ",12.3456);
输出就是12.35
周药师 2010-08-29
  • 打赏
  • 举报
回复
printf("%.0f", 0.5);
输出就是1
wing_0706 2010-08-29
  • 打赏
  • 举报
回复
%.2f
这样输出试试

64,654

社区成员

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

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