250b2e2972
Implement ALL in NumberFormat v3 except: * Add PluralRules.prototype.selectRange * Add NumberFormat.prototype.formatRange(ToParts)? (which will be reviewed in later CLs) * Change NumberFormat.prototpe.resolvedOptions https://github.com/tc39/proposal-intl-numberformat-v3 https://chromestatus.com/guide/edit/5707621009981440 Design Doc: https://docs.google.com/document/d/19jAogPBb6W4Samt8NWGZKu47iv0_KoQhBvLgQH3xvr8/edit Bug: v8:10776 Change-Id: I1acf833ec25fb05437cb0b21c5510bb99d1c4583 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3405649 Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/main@{#78878}
24 lines
1.1 KiB
JavaScript
24 lines
1.1 KiB
JavaScript
// Copyright 2021 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Flags: --harmony-intl-number-format-v3
|
|
|
|
let penny = new Intl.NumberFormat(
|
|
"en", { minimumFractionDigits: 2, maximumFractionDigits: 2, roundingIncrement: 1 });
|
|
let nickel = new Intl.NumberFormat(
|
|
"en", { minimumFractionDigits: 2, maximumFractionDigits: 2, roundingIncrement: 5 });
|
|
let dime = new Intl.NumberFormat(
|
|
"en", { minimumFractionDigits: 2, maximumFractionDigits: 2, roundingIncrement: 10 });
|
|
|
|
// https://necs.com/knowledgebase/sysprefs_prc_mod_roundmeth.htm
|
|
assertEquals("10.15", penny.format(10.154));
|
|
assertEquals("10.16", penny.format(10.155));
|
|
assertEquals("10.10", nickel.format(10.124));
|
|
assertEquals("10.15", nickel.format(10.125));
|
|
assertEquals("10.40", dime.format(10.444));
|
|
// mistake in the above page, the result should be 10.40 not 10.50
|
|
// assertEquals("10.50", dime.format(10.445));
|
|
assertEquals("10.40", dime.format(10.445));
|
|
assertEquals("10.50", dime.format(10.45));
|