1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 16:07:46 +00:00

LibJS: Use more accurate number-to-string method in Intl.NumberFormat

Intl.NumberFormat only ever wants literal number-to-digits here, without
extra exponential formatting.
This commit is contained in:
Timothy Flynn 2022-11-04 08:53:23 -04:00 committed by Linus Groh
parent 9620a092de
commit d56205f991
3 changed files with 14 additions and 6 deletions

View file

@ -135,6 +135,12 @@ describe("style=decimal", () => {
expect(en.format(1.23456)).toBe("1.23456");
expect(en.format(1.234567)).toBe("1.23457");
expect(en.format(1.234561)).toBe("1.23456");
expect(en.format("12344501000000000000000000000000000")).toBe(
"12,344,501,000,000,000,000,000,000,000,000,000.000"
);
expect(en.format("-12344501000000000000000000000000000")).toBe(
"-12,344,501,000,000,000,000,000,000,000,000,000.000"
);
const ar = new Intl.NumberFormat("ar", {
minimumFractionDigits: 3,
@ -149,6 +155,13 @@ describe("style=decimal", () => {
expect(ar.format(1.23456)).toBe("\u0661\u066b\u0662\u0663\u0664\u0665\u0666");
expect(ar.format(1.234567)).toBe("\u0661\u066b\u0662\u0663\u0664\u0665\u0667");
expect(ar.format(1.234561)).toBe("\u0661\u066b\u0662\u0663\u0664\u0665\u0666");
let digits = "\u0661\u0662\u066c\u0663\u0664\u0664\u066c\u0665\u0660\u0661";
digits += "\u066c\u0660\u0660\u0660".repeat(9);
digits += "\u066b\u0660\u0660\u0660";
expect(ar.format("12344501000000000000000000000000000")).toBe(digits);
expect(ar.format("-12344501000000000000000000000000000")).toBe("\u061c-" + digits);
});
test("notation=scientific", () => {