diff --git a/expressions/src/data/number.test.ts b/expressions/src/data/number.test.ts new file mode 100644 index 0000000..c0e5453 --- /dev/null +++ b/expressions/src/data/number.test.ts @@ -0,0 +1,13 @@ +import {NumberData} from "./number"; + +describe("number", () => { + it("coerces to string", () => { + expect(new NumberData(-0).coerceString()).toEqual("0"); + expect(new NumberData(0).coerceString()).toEqual("0"); + expect(new NumberData(1).coerceString()).toEqual("1"); + expect(new NumberData(1.2).coerceString()).toEqual("1.2"); + + // Round to 15 digits precision + expect(new NumberData(1.2345678901234567).coerceString()).toEqual("1.234567890123457"); + }); +}); diff --git a/expressions/src/data/number.ts b/expressions/src/data/number.ts index 9a3dec4..095a1c1 100644 --- a/expressions/src/data/number.ts +++ b/expressions/src/data/number.ts @@ -8,7 +8,7 @@ export class NumberData implements ExpressionDataInterface { public primitive = true; coerceString(): string { - if (Object.is(this.value, -0)) { + if (this.value === 0) { return "0"; }