发布日期:2018-03-26
C++中作用于浮点数的 round() 函数+ 查看更多
C++中作用于浮点数的 round() 函数
+ 查看更多
发布日期:2018-02-26 14:33
分类:CPlusPlus
浏览次数:1464
我需要一个简单的浮点数的四舍五入的函数,比如:
double round(double); round(0.1) = 0 round(-0.1) = 0 round(-0.9) = -1
我在math.h中发现了ceil()和floor()函数,但是不是四舍五入的。
它是否以另一个名字在C++标准库中存在,或者它被漏掉了?
回答
C++98标准库中没有 round() 这个函数,但是你可以自己写一个:
double round(double d) { return floor(d + 0.5); }
C++98标准库中没有round()函数的可能的原因是它可以被其他的方法所实现。以上是一种常见的方法,但是也有其他的比如round-to-even的方法,它的误差更小,并且在你需要做大量四舍五入运算时有普遍更好的效果,但它实现起来更加复杂。