gpt4 book ai didi

c++ - 如何在 C++ 中提高 int 或 long 的幂

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:58 25 4
gpt4 key购买 nike

小问题:我只是想知道,如果一个人想要将一个 int 或 long 提高到另一个 int 或 long 的幂,会吗

(long)std::pow((double)a,(double)b)

够用还是需要

(long)(0.5 + std::pow((double)a,(double)b))

?

最佳答案

有两个考虑因素。第一个是由于浮点表示的不精确而导致的舍入;在这种情况下这不是问题,因为只要位数少于 float 中的有效位数,整数就可以完美表示。如果 long 是 32 位并且 double significand 是 53 位,通常情况下,不会有问题。

第二个考虑因素是 pow 函数本身的准确性。如果有任何可能低于实际值,则将结果加 0.5 舍入是确保结果正确的唯一方法。

pow 的预期结果将始终是一个整数,因此加 0.5 没有坏处。我会推荐那个版本。

关于c++ - 如何在 C++ 中提高 int 或 long 的幂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7094108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com