diff --git a/src/decimal128.ts b/src/decimal128.ts index ccf35743..a7b58317 100644 --- a/src/decimal128.ts +++ b/src/decimal128.ts @@ -304,7 +304,7 @@ export class Decimal128 { lastDigit = nDigitsStored - 1; significantDigits = nDigits; if (significantDigits !== 1) { - while (representation[firstNonZero + significantDigits - 1] === '0') { + while (digits[firstNonZero + significantDigits - 1] === 0) { significantDigits = significantDigits - 1; } } diff --git a/test/node/decimal128_tests.js b/test/node/decimal128_tests.js index 9789cf8e..e5ba7df3 100644 --- a/test/node/decimal128_tests.js +++ b/test/node/decimal128_tests.js @@ -1210,6 +1210,11 @@ describe('Decimal128', function () { expect(new Decimal128('00').toString()).to.equal('0'); expect(new Decimal128('0.5').toString()).to.equal('0.5'); expect(new Decimal128('-0.5').toString()).to.equal('-0.5'); + expect(new Decimal128('-0.0097').toString()).to.equal('-0.0097'); + expect(new Decimal128('-0.0011').toString()).to.equal('-0.0011'); + expect(new Decimal128('-0.00110').toString()).to.equal('-0.00110'); + expect(new Decimal128('0.0011').toString()).to.equal('0.0011'); + expect(new Decimal128('0.00110').toString()).to.equal('0.00110'); expect(new Decimal128('-1e400').toString()).to.equal('-1E+400'); done(); });