# pow returns different results using Double or Decimal with negative exponent

Well, algebraically, `x^(-p) == 1/(x^(p))`

So, convert your negative power to a positive power, and then take the reciprocal.

```
1/pow(10 as Decimal, 2) // 0.01
```

That's simply how NSDecimal / NSDecimalNumber works: it doesn't do negative exponents. You can see a rather elaborate workaround described here:

https://stackoverflow.com/a/12095004/341994

As you can see, the workaround is *exactly* what you've already been told: look to see if the exponent would be negative and, if so, take the inverse of the positive root.

I think that this struct give us an idea about the problem:

```
public struct Decimal {
public var _exponent: Int32
public var _length: UInt32 // length == 0 && isNegative -> NaN
public var _isNegative: UInt32
public var _isCompact: UInt32
public var _reserved: UInt32
public var _mantissa: (UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16)
public init()
public init(_exponent: Int32, _length: UInt32, _isNegative: UInt32, _isCompact: UInt32, _reserved: UInt32, _mantissa: (UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16))
}
```

The length condition should be satisfacted only length == 0, but as UInt32 doesn't represents fractionary numbers the condition is satisfacted...