【发布时间】:2015-10-22 12:48:08
【问题描述】:
所以我正在尝试做 pow (x, y)。其中 x 和 y 是无符号长整数,结果存储在无符号长整数中。这个结果将小于 2^63,所以我应该能够做到。 但由于它返回一个浮点数,所以我得到的大数结果不准确。无论如何,如果不使用 bignum 之类的外部库,是否可以获得准确的结果? 我知道我可以简单地执行 x*x a Y 次,但这是我试图避免的,因为我试图让我的程序更快。
【问题讨论】:
-
你的代码在哪里?您可能需要将浮点数四舍五入到最接近的整数。
-
pow执行exp(y*log(x)),速度很快,但存在精度问题。 -
I 问题是不是1个数不准确,而是37个。 answer = pow(a, b);
-
我没有标记为重复,因为你一开始不知道该怎么做,但你可能会看看这个:stackoverflow.com/questions/101439/…