Fixed #236: BigNumber downgrading to Number for a negative base in pow

This commit is contained in:
jos 2014-11-21 11:16:09 +01:00
parent 27d5ce5fb3
commit a61397cfc6
2 changed files with 4 additions and 1 deletions

View File

@ -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 {

View File

@ -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() {