gpt4 book ai didi

ios - 带有分数的 NSDecimalNumber 在提升到高幂时返回大数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:20:07 26 4
gpt4 key购买 nike

好的,所以我正在尝试将这个小数额提高到一个高幂。但出于某种原因,根据日志,我得到了一个非常高的数字,有时甚至是一个 NSDecimalOverflor 错误。有人可以帮我解决这个问题吗?

NSDecimalNumber *number = [[NSDecimalNumber alloc] initWithDouble:0.4];
NSInteger power = 1001;

number = [number decimalNumberByRaisingToPower:power];

NSLog(@"%@",number);

也许我因为数字太小而达到了某种极限?任何事情都会有所帮助!

编辑:哦,堆栈跟踪显示所有数字在实际上下文中中断时都是相同的。

最佳答案

来自苹果文档:

NSDecimalNumber, an immutable subclass of NSNumber, provides an object-oriented wrapper for doing base-10 arithmetic. An instance can represent any number that can be expressed as mantissa x 10^exponent where mantissa is a decimal integer up to 38 digits long, and exponent is an integer from –128 through 127.

所以有一个限制,考虑浮点double

0.4^1001:
4e-399
或者
0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001

这比 NSDecimalNumber 可以处理的要大得多。

关于ios - 带有分数的 NSDecimalNumber 在提升到高幂时返回大数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19801980/

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