diff --git a/lib/function/arithmetic/pow.js b/lib/function/arithmetic/pow.js index e64ccffca..6142d9f57 100644 --- a/lib/function/arithmetic/pow.js +++ b/lib/function/arithmetic/pow.js @@ -81,7 +81,7 @@ module.exports = function (math) { } if (y instanceof BigNumber) { - if (y.isInteger() && !x.isNegative()) { + if (y.isInteger() || !x.isNegative()) { return x.pow(y); } else { diff --git a/test/function/arithmetic/pow.test.js b/test/function/arithmetic/pow.test.js index 5e3b3fa83..f61cb2047 100644 --- a/test/function/arithmetic/pow.test.js +++ b/test/function/arithmetic/pow.test.js @@ -50,6 +50,9 @@ describe('pow', function() { it('should exponentiate bignumbers', function() { assert.deepEqual(pow(bignumber(2), bignumber(3)), bignumber(8)); assert.deepEqual(pow(bignumber(100), bignumber(500)), bignumber('1e1000')); + + assert.deepEqual(pow(bignumber(-1), bignumber(2)), bignumber('1')); + assert.deepEqual(pow(bignumber(2), bignumber(1.5)), bignumber('2.828427124746190097603377448419396157139343750753896146353359476')); }); it('should exponentiate a negative bignumber to a non-integer power', function() {