如何实现四舍五入?

whizstorm 2004-12-03 09:29:49
如: float i = 1.23;
float j = 1.68;
如何让i =1 j = 2;
...全文
178 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaowenhao 2004-12-03
  • 打赏
  • 举报
回复
使用cout的成员函数setprecision()试一试
cout.setprecision(2);
cout<<a<<endl;
不过是带小数的
huangzenghao 2004-12-03
  • 打赏
  • 举报
回复
加上0.5再截去……
JerrySabrina 2004-12-03
  • 打赏
  • 举报
回复
i=int(i+0.5);
========================
有这个已经很好了,何必要什么函数呢?
whizstorm 2004-12-03
  • 打赏
  • 举报
回复
有没有函数直接实现的啊?
双杯献酒 2004-12-03
  • 打赏
  • 举报
回复
float fA = 123.6;
float fB = -123.6;

int iA = fA + (fA<0.0 ? -0.5 : 0.5);
int iB = fB + (fB<0.0 ? -0.5 : 0.5);
zhouyong0371 2004-12-03
  • 打赏
  • 举报
回复
int i = 1.25 + 0.5;
int j = 1.68 + 0.5;
pcboyxhy 2004-12-03
  • 打赏
  • 举报
回复
i=int(i+0.5);
wujian53 2004-12-03
  • 打赏
  • 举报
回复
#define precision(F, N) ((int(F * pow(10, N) + 0.5))/ pow(10, N))
上面拷贝错了, 正确应该是这样
wujian53 2004-12-03
  • 打赏
  • 举报
回复
#define precision(F, N) ((int(F * pow(10, N) + 0.5))/ pow(10, N))0.5/pow(N - 1))

double precision(double f, unsigned n)
{
double t = pow(10, n);
return (int(f *t + 0.5))/ t;
}

函数 或者宏

precision(1.21, 1) = 1.2
precision(1.27, 1) = 1.3

precision(1.257, 2) = 1.26
precision(1.251, 2) = 1.25

oyljerry 2004-12-03
  • 打赏
  • 举报
回复
+0.5
dudu妈 2004-12-03
  • 打赏
  • 举报
回复
int i = 1.25 + 0.5;
int j = 1.68 + 0.5;
Robinhoodgood 2004-12-03
  • 打赏
  • 举报
回复
i=int(f+0.5);(f为float精确到e-6)
i=int(d+0.5);(d为double精确到e-15)

float f = 3.499999;
int i = f+0.5; //i==3
f= 3.4999999
int i = f+0.5 //i==4

64,266

社区成员

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

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