首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ RoundUp就像在Excel中楼层的负数和单元的正数

C++ RoundUp就像在Excel中楼层的负数和单元的正数
EN

Stack Overflow用户
提问于 2020-04-27 05:29:45
回答 1查看 99关注 0票数 0

Excel有一个叫做四舍五入的函数,我不是一个数学家,我把它称为真正的四舍五入,或者至少对我来说更符合逻辑,因为它把像0.5这样的正值变成1,把像-0.5这样的负值变成-1。因此,换言之,Excel舍入在0.5值上做了C++ ceil等效值,在-0.5值上做了C++ floor等效值。

难道C++中没有这样的内置功能吗?是的,我知道我可以创建自己的函数,但这就证明了我需要这个自定义函数来确定要舍入的数字是正数还是负数的原因,然后需要一个if语句!

EN

回答 1

Stack Overflow用户

发布于 2020-04-27 05:46:41

没有内置的函数可以舍入为零。但是您可以在没有任何明显的if语句的情况下编写自己的代码。

代码语言:javascript
复制
double RoundAwayFromZero(double v) {
    auto s = std::copysign(1.0, v);
    return s * std::ceil(v * s);
}

这使用copysign来获得一个正确签名的1.0值,然后使用ceil将该值设为正数,将其舍入为0,然后将正确的符号恢复为结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61448362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档