四舍五入到 C++ 中最接近的数字使用升压?
有没有办法四舍五入到 Boost 库中最接近的数字?我的意思是任何数字,2、5、17 等等。
或者还有其他方法可以做到吗?
Is there a way to round to the nearest number in the Boost library? I mean any number, 2's, 5's, 17's and so on and so forth.
Or is there another way to do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
实际上你根本不需要Boost,只需要C++库中包含的C库即可。具体来说,您需要包含 cmath 标头:
Round up a number: ceil(): http://www.cplusplus.com/reference/clibrary/cmath/ceil/
向下舍入一个数字:floor(): http://www.cplusplus.com/reference/clibrary/cmath/floor/
您可以编写自己的圆形函数:
You actually don't need Boost at all, just the C library included in the C++ library. Specifically, you need to include the cmath header:
Round up a number: ceil(): http://www.cplusplus.com/reference/clibrary/cmath/ceil/
Round down a number: floor(): http://www.cplusplus.com/reference/clibrary/cmath/floor/
You can write your own round function then:
您可以使用 C99 中提供的
lround
。(输出 1、2、2)。
检查您的编译器文档是否需要启用 C99 支持和/或如何启用 C99 支持。
You can use
lround
available in C99.(outputs 1, 2, 2).
Check your compiler documentation if and/or how you need to enable C99 support.
Boost 舍入函数
例如:
输出为:
Boost Rounding Functions
For example:
Output is: