绝对的抢分题,快来看呀!!!!!!!!

sgf87 2008-10-07 04:51:27
在c++中如何实现四舍五入 返回整型变量 小数点后一位就可以
例如结果为1.8
那么就返回2
如果为0.6
那么就返回1
0.5 就返回0
...全文
149 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
kanbang 2010-08-05
  • 打赏
  • 举报
回复
考虑负数没有??
backway 2008-10-07
  • 打赏
  • 举报
回复
(int)(a+0.5);
迷途的书童 2008-10-07
  • 打赏
  • 举报
回复
四舍五入(int)(a+0.5);五舍六入(int)(a+0.6);
  • 打赏
  • 举报
回复
果然是抢分贴.
wjl4926 2008-10-07
  • 打赏
  • 举报
回复
(int)(i+0.5)

wjl4926 2008-10-07
  • 打赏
  • 举报
回复
晕 没看清

wjl4926 2008-10-07
  • 打赏
  • 举报
回复
int fun(double i)
{

double temp=i*10;
int tempreturn;
if(temp%10>=5)
{
tempreturn=(temp+10)/10;
}
else
{
tempreturn=temp/10;
}
return tempreturn;

}
asksgp 2008-10-07
  • 打赏
  • 举报
回复
果然是抢分贴。。。
  • 打赏
  • 举报
回复
[Quote=引用楼主 sgf87 的帖子:]
在c++中如何实现四舍五入 返回整型变量 小数点后一位就可以
例如结果为1.8
那么就返回2
如果为0.6
那么就返回1
0.5 就返回0
[/Quote]

楼主,你的说法好像已经不是四舍五入了吧。。。
0.5返回0.........

如果是四舍五入,那就是+0.5
看你的意图了
csj 2008-10-07
  • 打赏
  • 举报
回复
对了,如果是四舍五入的话,0.5应该返回1哦
csj 2008-10-07
  • 打赏
  • 举报
回复
对的,加上0.5就可以了,因为整型是向下取整的!


int i;
float f = 3.14;
i = (int)(f+0.5); //对f作四舍五入
OenAuth.Net 2008-10-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ysuliu 的回复:]
你这是五舍六入。
所以得用(int)(a+0.5);

引用楼主 sgf87 的帖子:
在c++中如何实现四舍五入 返回整型变量 小数点后一位就可以
例如结果为1.8
那么就返回2
如果为0.6
那么就返回1
0.5 就返回0
[/Quote]


还真没注意,好像是五舍六入,晕,你正确(int)(a+0.4);
K行天下 2008-10-07
  • 打赏
  • 举报
回复
(int)(n+0.41)
三文鱼也会飞 2008-10-07
  • 打赏
  • 举报
回复
在原来的数上+0.5就可以

freshairfly 2008-10-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 sgf87 的帖子:]
在c++中如何实现四舍五入 返回整型变量 小数点后一位就可以
例如结果为1.8
那么就返回2
如果为0.6
那么就返回1
0.5 就返回0
[/Quote]
到底是四舍五入还是五舍六入??
如果四舍五入就是楼上的(int)(a+0.5)
zjljqlbtx 2008-10-07
  • 打赏
  • 举报
回复
另注:

VC内应该无四舍五入的函数.



不过可以自己写个喽,我发2个给你参考..


    int Rnum=(int)T*1.0eN;
Rnum%=10;
if(Rnum>=5)
Rnum+10;
Rnum*=.1;
double result=(int)Rnum*1.0e-(N-1);




#include <iostream>
#include <cmath>

double e(double n)
{
return pow(10, n);
}

int main(void)
{
int N=0;
double T;
std::cout<<"输入一点数:";
std::cin>>T;
std::cout<<"输入第几位4舍5入:";
std::cin>>N;
int Rnum = (int)(T * e(N));
if(Rnum % 10 >= 5) Rnum += 10;
Rnum /= 10;
double result=Rnum * e(-(N-1));
std::cout<<result<<std::endl;
system("pause");
return 0;
}





zjljqlbtx 2008-10-07
  • 打赏
  • 举报
回复
static_cast<int>(value + 0.5f)
ysuliu 2008-10-07
  • 打赏
  • 举报
回复
你这是五舍六入。
所以得用(int)(a+0.5);

[Quote=引用楼主 sgf87 的帖子:]
在c++中如何实现四舍五入 返回整型变量 小数点后一位就可以
例如结果为1.8
那么就返回2
如果为0.6
那么就返回1
0.5 就返回0
[/Quote]
OenAuth.Net 2008-10-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yyyapple 的回复:]
(int)(a+0.4)
[/Quote]

强,不过应该是(int)(a+0.5)吧不然7.5+0.4=7.9=7了,呵呵
yyyapple 2008-10-07
  • 打赏
  • 举报
回复
(int)(a+0.4)

65,211

社区成员

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

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