标题:关于四舍五入的问题,求大佬们解惑
只看楼主
甲级黎庶
Rank: 2
等 级:论坛游民
帖 子:52
专家分:15
注 册:2017-10-4
结帖率:75%
已结贴  问题点数:20 回复次数:5 
关于四舍五入的问题,求大佬们解惑
#define round(x) ((x) < LONG_MIN-0.5 || (x) > LONG_MAX+0.5 ?\
  
      error() : ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
这个怎么理解,就是round后的一串表达什么意思,error又有什么用?
求大佬们解惑
搜索更多相关主题的帖子: 四舍五入 define long || 表达 
2017-10-11 16:26
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
得分:10 
我还没有学到这个。但字面意思上看。
第一行:x在四舍五入值+ -0.5的范围,也可能是说在+ -0.5范围内取整(不知道LONG_MIN和LONG_MAX是什么意思)
第二行:x正数+0.5 负数-0.5
2017-10-11 16:57
甲级黎庶
Rank: 2
等 级:论坛游民
帖 子:52
专家分:15
注 册:2017-10-4
得分:0 
好的,我知道了,谢谢
2017-10-11 17:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
如果结果在long可表示的范围内则……

C语言有个标准函数本身就叫round
http://en.
2017-10-11 18:28
甲级黎庶
Rank: 2
等 级:论坛游民
帖 子:52
专家分:15
注 册:2017-10-4
得分:0 
回复 4楼 rjsp
大佬,round和iround有什么区别啊
2017-10-12 07:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
以下是引用甲级黎庶在2017-10-12 07:48:46的发言:

大佬,round和iround有什么区别啊

iround 是什么,你想说的是lround吧?

上个链接中有说
If the result of lround or llround is outside the range representable by the return type, a domain error or a range error may occur.

这个链接 http://pubs. 说得更详细:
An application wishing to check for error situations should set errno to zero and call feclearexcept(FE_ALL_EXCEPT) before calling these functions. On return, if errno is non-zero or fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) is non-zero, an error has occurred.

2017-10-12 08:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-481281-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026285 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved