为了账号安全,请及时绑定邮箱和手机立即绑定

圆()在C+中浮动

圆()在C+中浮动

C++
动漫人物 2019-06-18 16:46:43
圆()在C+中浮动我需要一个简单的浮点舍入函数,因此:double round(double);round(0.1) = 0round(-0.1) = 0round(-0.9) = -1我能找到ceil()和floor()在数学里.但是.round().它是以另一个名称出现在标准C+库中,还是丢失了?
查看完整描述

3 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

C+98标准库中没有圆形()。不过你可以自己写一个。的实现如下:四舍五入:

double round(double d){
  return floor(d + 0.5);}

C+98标准库中没有圆函数的可能原因是它实际上可以不同的方式实现。以上是一种常见的方式,但也有其他方式,如四舍五入,如果你要做很多四舍五入,这就不那么偏颇了,通常情况下也会更好;不过,实现起来有点复杂。


查看完整回答
反对 回复 2019-06-18
?
BIG阳

TA贡献1859条经验 获得超6个赞

Boost提供了一组简单的四舍五入函数。

#include <boost/math/special_functions/round.hpp>double a = boost::math::round(1.5); // Yields 2.0int b = boost::math::iround(1.5);
 // Yields 2 as an integer

有关更多信息,请参见Boost文档.

编辑*自C+11以来,有std::roundstd::lround,和std::llround.


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 487 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信