diff --git a/num.js b/num.js index 9a09ada..d2ccda5 100644 --- a/num.js +++ b/num.js @@ -12,6 +12,12 @@ function Num(num, prec) { return self; } + if (num instanceof int) { + this._int = num; + this._precision = prec || 0; + return self; + } + // convert to a string num = '' + num; @@ -28,7 +34,11 @@ function Num(num, prec) { } this._int = int(num); - this._precision = prec || precision; + this._precision = precision; + + if (prec && prec > 0) { + this.set_precision(prec); + } } // TODO (shtylman) cleanup diff --git a/test/build.js b/test/build.js index fa0c6b7..8bfb471 100644 --- a/test/build.js +++ b/test/build.js @@ -36,8 +36,8 @@ test('build', function() { }); test('build#precision', function() { - assert.equal(num(15, 1), '1.5'); - assert.equal(num(1234567890, 5), '12345.67890'); - assert.equal(num(-122, 4), '-0.0122'); + assert.equal(num(15, 1), '15.0'); + assert.equal(num(1234567890, 5).div(10e4), '12345.67890'); + assert.equal(num(-122, 4).div(10e3), '-0.0122'); });