Raise NSDecimalNumber to Negative Power

I need the equivalent of the C pow () function, which will work with NSDecimalNumbers. With pow, you can use negative numbers, for example. pow(1514,-1234), with the NSDecimal decimalNumberByRaisingToPower: method, you are forced to use the NSUInteger, which seems to require a positive value.

I would like to do something like this:

[decimalNumber decimalNumberByRaisingToPower:-217.089218];

or

[decimalNumber decimalNumberByMultiplyingByPowerOf10:-217];

no failures due to overflow or overflow exceptions.

+3
source share
3 answers

Mathematically a ^ (- b) == 1 / (a ​​^ b). Therefore, if you just need to raise to negative integrated power,

decimalNumber = [decimalNumber decimalNumberByRaisingToPower:1234];
decimalNumber = [[NSDecimalNumber one] decimalNumberByDividingBy:decimalNumber];

, , (1) pow() (2) ( ).

+4

, , , decimalNumberByRaisingToPower, Apple:

(NSDecimalNumber *) decimalNumberByMultiplyingByPowerOf10: ()

.

+1

decimalNumber doubleValue, pow ++. , , . . Objective-C ++? ++ c.

0

Source: https://habr.com/ru/post/1762171/


All Articles