From e46fecf5bcdee4120d9ee665a5d19897c41239fa Mon Sep 17 00:00:00 2001 From: Jesse Alama Date: Thu, 25 Jul 2024 16:18:25 +0200 Subject: [PATCH 1/4] Clean up README (#170) * Include some Intl.NumberFormat examples * Fix grammar mistake in describing the data model * Link to earlier presentations --- README.md | 23 +++++++++++++++++++---- index.html | 2 +- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c2eaf6f5..3c6c2d74 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,19 @@ let amountInEur = exchangeRateUsdToEur.multiply(amountInUsd); console.log(amountInEur.round(2).toString()); ``` +##### Format decimals with Intl.NumberFormat + +```js +const options = { + minimumFractionDigits: 2, + maximumFractionDigits: 4 +}; +const formatter = new Intl.NumberFormat(options) +formatter.format(new Decimal128("1.0")); // "1.00" +formatter.format(new Decimal128("1.000")); // "1.000" +formatter.format(new Decimal128("1.00000")); // "1.000" +``` + #### Why use JavaScript for this case? Historically, JavaScript may not have been considered a language where exact decimal numbers are even representable, to say nothing of doing (exact) calculations. In some application architectures, JS only deals with a string representing a human-readable decimal quantity (e.g, `"1.25"`), and never does calculations or conversions. However, several trends push towards JS’s deeper involvement in with decimal quantities: @@ -183,7 +196,7 @@ We will use the **Decimal128** data model for JavaScript decimals. Decimal128 is #### Unlimited precision decimals (AKA "BigDecimal") -The data model here consists of unlimited size decimals (no fixed bith-width), understood exactly as mathematical values. +The "BigDecimal" data model is based on unlimited-size decimals (no fixed bith-width), understood exactly as mathematical values. From the champion group’s perspective, both BigDecimal and Decimal128 are both coherent, valid proposals that would meet the needs of the primary use case. Just looking at the diversity of semantics in other programming languages, and the lack of practical issues that programmers run into, shows us that there are many workable answers here. @@ -229,7 +242,7 @@ Decimal is based on IEEE 754 Decimal128, which is a standard for base-10 decimal + a single NaN value--distinct from the built-in `NaN` of JS. The difference between quiet and singaling NaNs will be collapsed into a single Decimal NaN. + positive and negative infinity will be available, though, as with `NaN`, they are distinct from JS's built-in `Infinity` and `-Infinity`. -Decimal offers a *canonicalization by default* approach. Thus, when constructing a Decimal value from a string, all digits (including trailing zeros), but in calls to `toString`, the result will be canonicalized unless the option `canonicalize: false` is passed in. Example: +Decimal offers a *canonicalization by default* approach when converting to strings. In short, this means that if a Decimal has trailing zeros (e.g., "1.20"), they will be removed, by default. When constructing a Decimal value from a string, all digits—including trailing zeros—will be respected and stored. However, in calls to `toString`, the resulting string will be canonicalized (i.e., trailing zeroes removed) unless the option `canonicalize: false` is passed in in the argument options bag. Example: ```javascript let a = new Decimal128("-4.00"); @@ -239,9 +252,9 @@ console.log(a.toString({ canonicalize: false })); // -4.00 ### Operator semantics -+ Absolute value, addition, multiplication, subtraction, division, remainder, and negation are defined. ++ Absolute value, negation, addition, multiplication, subtraction, division, and remainder are defined. + Bitwise operators are not supported, as they don’t logically make sense on the Decimal domain ([#20](https://github.com/tc39/proposal-decimal/issues/20)) -+ rounding: all seven rounding modes of `Intl.NumberFormat` and `Temporal` will be supposed (in particular, all five rounding modes of IEEE 754 will be supported) ++ rounding: All five rounding modes of IEEE 754—floor, ceiling, truncate, round-ties-to-even, and round-ties-away-from-zero—will be supported. (This implies that a couple of the rounding modes in `Intl.NumberFormat` and `Temporal` won't be supported.) + We currently do not foresee Decimal values interacting with other Number values. Expect TypeErrors when trying to add, say, a Number to a Decimal, like for BigInt and Number. ([#10](https://github.com/tc39/proposal-decimal/issues/10)). The library of numerical functions here is kept deliberately minimal. It is based around targeting the primary use case, in which fairly straightforward calculations are envisioned. The secondary use case (data exchange) will involve probably little or no calculation at all. For the tertiary use case of scientific/numerical computations, developers may experiment in JavaScript, developing such libraries, and we may decide to standardize these functions in a follow-on proposal. We currently do not have good insight into the developer needs for this use case, except generically: square roots, exponentiation & logarithms, and trigonometric functions might be needed, but we are not sure if this is a complete list, and which are more important to have than others. In the meantime, one can use the various functions in JavaScript’s `Math` standard library. @@ -268,6 +281,8 @@ Decimal128 objects can be constructed from Numbers, Strings, and BigInts. Simila - [Decimal open-ended discussion](https://github.com/tc39/notes/blob/main/meetings/2023-07/july-12.md#decimal-open-ended-discussion) (July, 2023) - [Decimal stage 1 update and open discussion](https://github.com/tc39/notes/blob/main/meetings/2023-09/september-27.md#decimal-stage-1-update-and-discussion) (September, 2023) - [Decimal stage 1 update and request for feedback](https://github.com/tc39/notes/blob/main/meetings/2023-11/november-27.md#decimal-stage-1-update--request-for-feedback) (November, 2023) +- [Decimal for stage 2](https://github.com/tc39/notes/blob/main/meetings/2024-04/april-11.md#decimal-for-stage-2) (April, 2024) +- [Decimal for stage 2](https://github.com/tc39/notes/blob/main/meetings/2024-06/june-13.md#decimal-for-stage-2) (June, 2024) ## Future work diff --git a/index.html b/index.html index ab0ba8ef..f55d0f87 100644 --- a/index.html +++ b/index.html @@ -3231,7 +3231,7 @@

Stage 1 Draft / July 19, 2024

Decimal

+

Stage 1 Draft / July 25, 2024

Decimal

Introduction

From 546e92ef3b3db0cff721af7e8cbd97f21447457b Mon Sep 17 00:00:00 2001 From: Jesse Alama Date: Tue, 17 Sep 2024 16:11:12 +0200 Subject: [PATCH 2/4] July spec review (again) (#173) * Consistently say "preserve trailing zeroes" instead of "canonicalize" * Define new AO for mathematical value of a decimal, and use it * Use new MV AO to simplify comparisons * Comparisons return false when working with NaNs * Make clear that ApplyRoundingModeToPositive gives an integer * Fix upper bound * RoundAndPickQuantum: Use more suggestive formal parameter * add: Remove redundant step * exponent: Improve description * division: Fix category errors and handle zero in the denominator * remainder: Duplicate logic of Number::remainder * scale10: Watch out for computing quantum for non-finite arguments * round: Swap floor/ceiling when handling negative values * mantissa: Ensure we always return decimals Also, work with the (truncated) exponent of the underlying Decimal128 value. * Consistently suffix Decimal128 value pairs with subscript * Decimal128ToDecimalString: Fix bugs with sign and canonicalize * Decimal128ToExponentialString: Fix, and respect trailing zero option * toString: Ensure that trailing zeroes are preserves for zero * Fix example * `toFixed`: Permit a rounding mode option * toFixed: Complete algorithm * Complete specification of `toPrecision` --- README.md | 5 +- index.html | 217 ++++++++++++++--------------- spec.emu | 390 +++++++++++++++++++++++++++++++---------------------- 3 files changed, 342 insertions(+), 270 deletions(-) diff --git a/README.md b/README.md index 3c6c2d74..cac1c5eb 100644 --- a/README.md +++ b/README.md @@ -42,19 +42,18 @@ In the examples that follow, we'll use `Decimal128` objects. (Why "Decimal128"? ##### Add up the items of a bill, then add sales tax ```js -const one = new Decimal128(1); function calculateBill(items, tax) { let total = new Decimal128(0); for (let {price, count} of items) { total = total.add(new Decimal128(price).times(new Decimal128(count))); } - return total.multiply(tax.add(one)); + return total.multiply(tax.add(new Decimal128(1))); } let items = [{price: "1.25", count: 5}, {price: "5.00", count: 1}]; let tax = new Decimal128("0.0735"); let total = calculateBill(items, tax); -console.log(total.round(2).toString(); +console.log(total.toFixed(2)); ``` ##### Currency conversion diff --git a/index.html b/index.html index f55d0f87..f0a9e589 100644 --- a/index.html +++ b/index.html @@ -1559,7 +1559,7 @@ }); let sdoMap = JSON.parse(`{}`); -let biblio = JSON.parse(`{"refsByClause":{"sec-decimal128.prototype.exponent":["_ref_0","_ref_103","_ref_104","_ref_105","_ref_106","_ref_107"],"sec-decimal128.prototype.mantissa":["_ref_1","_ref_108","_ref_109","_ref_110","_ref_111","_ref_112","_ref_113"],"sec-decimal128.prototype.compare":["_ref_2","_ref_3","_ref_4","_ref_5"],"sec-decimal-method-round":["_ref_6","_ref_7","_ref_243","_ref_244","_ref_245","_ref_246","_ref_247","_ref_248","_ref_249"],"sec-decimal128.prototype.toprecision":["_ref_8","_ref_271","_ref_272","_ref_273","_ref_274","_ref_275","_ref_276"],"sec-decimal-intro":["_ref_9","_ref_10","_ref_11","_ref_12","_ref_13","_ref_14","_ref_15","_ref_16","_ref_17","_ref_18","_ref_19","_ref_20","_ref_21","_ref_22","_ref_23","_ref_24","_ref_25","_ref_26","_ref_27","_ref_28","_ref_29","_ref_30","_ref_31","_ref_32","_ref_33","_ref_34","_ref_35","_ref_36","_ref_37","_ref_38","_ref_39","_ref_40","_ref_41","_ref_42","_ref_43","_ref_44","_ref_45","_ref_46","_ref_47","_ref_48","_ref_49","_ref_50","_ref_51","_ref_52","_ref_53","_ref_54","_ref_55","_ref_56","_ref_57"],"sec-decimal128-roundtodecimal128domain":["_ref_58","_ref_59","_ref_60","_ref_61","_ref_62","_ref_63","_ref_64"],"sec-decimal128-applyroundingmodetopositive":["_ref_65","_ref_66","_ref_67","_ref_68"],"sec-decimal128-pickquantum":["_ref_69","_ref_70","_ref_71","_ref_72","_ref_73","_ref_74","_ref_75","_ref_76","_ref_77"],"sec-decimal128-roundandpickquantum":["_ref_78","_ref_79","_ref_80","_ref_81","_ref_82","_ref_83"],"sec-decimal128-abs":["_ref_84","_ref_85"],"sec-decimal128-negate":["_ref_86","_ref_87"],"sec-decimal128-decimal128todecimalstring":["_ref_88","_ref_89","_ref_90","_ref_91"],"sec-decimal128toexponentialstring":["_ref_92","_ref_93"],"sec-decimal128-value-to-object":["_ref_94"],"sec-the-decimal128-constructor-value":["_ref_95"],"sec-runtime-semantics-stringdecimalvalue":["_ref_96","_ref_97","_ref_98","_ref_99","_ref_100","_ref_101","_ref_102"],"sec-decimal128.prototype.precision":["_ref_114","_ref_115"],"sec-decimal128.prototype.abs":["_ref_116","_ref_117"],"sec-decimal128.prototype.negate":["_ref_118","_ref_119","_ref_120"],"sec-decimal128.prototype.add":["_ref_121","_ref_122","_ref_123","_ref_124","_ref_125","_ref_126","_ref_127","_ref_128","_ref_129","_ref_130","_ref_131","_ref_132","_ref_133","_ref_134","_ref_135","_ref_136"],"sec-decimal128.prototype.subtract":["_ref_137","_ref_138","_ref_139","_ref_140","_ref_141","_ref_142","_ref_143","_ref_144","_ref_145","_ref_146","_ref_147","_ref_148","_ref_149"],"sec-decimal128.prototype.multiply":["_ref_150","_ref_151","_ref_152","_ref_153","_ref_154","_ref_155","_ref_156","_ref_157","_ref_158","_ref_159","_ref_160","_ref_161","_ref_162","_ref_163","_ref_164","_ref_165","_ref_166","_ref_167","_ref_168","_ref_169","_ref_170","_ref_171","_ref_172","_ref_173","_ref_174","_ref_175","_ref_176","_ref_177","_ref_178","_ref_179","_ref_180"],"sec-decimal128.prototype.divide":["_ref_181","_ref_182","_ref_183","_ref_184","_ref_185","_ref_186","_ref_187","_ref_188","_ref_189","_ref_190","_ref_191","_ref_192","_ref_193","_ref_194","_ref_195","_ref_196","_ref_197","_ref_198","_ref_199","_ref_200","_ref_201","_ref_202","_ref_203","_ref_204","_ref_205","_ref_206"],"sec-decimal128.prototype.remainder":["_ref_207","_ref_208","_ref_209","_ref_210","_ref_211","_ref_212","_ref_213","_ref_214","_ref_215","_ref_216","_ref_217","_ref_218","_ref_219","_ref_220","_ref_221","_ref_222","_ref_223","_ref_224"],"sec-decimal128.prototype.equals":["_ref_225","_ref_226","_ref_227"],"sec-decimal128.prototype.notequals":["_ref_228","_ref_229","_ref_230"],"sec-decimal128.prototype.lessthan":["_ref_231","_ref_232","_ref_233"],"sec-decimal128.prototype.lessthanorequal":["_ref_234","_ref_235","_ref_236"],"sec-decimal128.prototype.greaterthan":["_ref_237","_ref_238","_ref_239"],"sec-decimal128.prototype.greaterthanorequal":["_ref_240","_ref_241","_ref_242"],"sec-decimal-method-scale10":["_ref_250","_ref_251","_ref_252","_ref_253","_ref_254","_ref_255","_ref_256","_ref_257","_ref_258","_ref_259","_ref_260","_ref_261","_ref_262","_ref_263","_ref_264"],"sec-decimal128.prototype.tostring":["_ref_265","_ref_266","_ref_267","_ref_268"],"sec-decimal128.prototype.toexponential":["_ref_269"],"sec-decimal128.prototype.tofixed":["_ref_270"],"sec-number-constructor-number-value":["_ref_277"],"sec-bigint-constructor-number-value":["_ref_278"],"sec-numbertobigint":["_ref_279"],"sec-tointlmathematicalvalue":["_ref_280","_ref_281","_ref_282","_ref_283","_ref_284"],"sec-formatnumberstring":["_ref_285","_ref_286","_ref_287","_ref_288","_ref_289","_ref_290","_ref_291","_ref_292","_ref_293","_ref_294"],"sec-torawprecision":["_ref_295","_ref_296","_ref_297","_ref_298","_ref_299","_ref_300","_ref_301","_ref_302","_ref_303","_ref_304"],"sec-torawfixed":["_ref_305","_ref_306","_ref_307","_ref_308","_ref_309","_ref_310","_ref_311","_ref_312","_ref_313","_ref_314"],"sec-partitionnumberpattern":["_ref_315","_ref_316","_ref_317","_ref_318","_ref_319","_ref_320","_ref_321","_ref_322","_ref_323"],"sec-resolveplural":["_ref_324","_ref_325"],"sec-resolvepluralrange":["_ref_326","_ref_327"]},"entries":[{"type":"clause","id":"sec-decimal-intro-","titleHTML":"Introduction","number":""},{"type":"term","term":"finite","id":"dfn-decimal128-finite","referencingIds":["_ref_13","_ref_14","_ref_17","_ref_23","_ref_29","_ref_34","_ref_37","_ref_40","_ref_42","_ref_45","_ref_54","_ref_57","_ref_97","_ref_104","_ref_109","_ref_282","_ref_286","_ref_296","_ref_306"]},{"type":"term","term":"zero","id":"dfn-decimal128-zero","referencingIds":["_ref_9","_ref_10","_ref_15","_ref_18","_ref_19","_ref_21","_ref_22","_ref_30","_ref_35","_ref_38","_ref_41","_ref_43","_ref_46","_ref_52","_ref_55","_ref_56","_ref_105","_ref_110","_ref_151","_ref_157"]},{"type":"term","term":"mathematical value","id":"dfn-decimal128-mathematical-value","referencingIds":["_ref_2","_ref_3","_ref_4","_ref_5","_ref_11","_ref_12","_ref_16","_ref_31","_ref_48","_ref_58","_ref_60","_ref_61","_ref_63","_ref_65","_ref_67","_ref_68","_ref_70","_ref_72","_ref_78","_ref_80","_ref_103","_ref_107","_ref_108","_ref_112","_ref_225","_ref_228","_ref_231","_ref_234","_ref_237","_ref_240","_ref_281","_ref_283","_ref_284","_ref_285","_ref_287","_ref_290","_ref_295","_ref_297","_ref_298","_ref_301","_ref_303","_ref_305","_ref_307","_ref_308","_ref_311","_ref_313","_ref_319"]},{"type":"term","term":"Decimal128 rounding mode","id":"dfn-decimal128-rounding-mode","referencingIds":["_ref_20","_ref_59","_ref_66","_ref_79"]},{"type":"term","term":"default rounding mode","id":"dfn-decimal128-default-rounding-mode","referencingIds":["_ref_6","_ref_7"]},{"type":"table","id":"table-decimal128-rounding-modes","number":1,"caption":"Table 1: Rounding modes in Decimal128 compared to IEEE 754 rounding modes"},{"type":"op","aoid":"cohort","id":"eqn-decimal128-cohort","referencingIds":["_ref_73","_ref_74","_ref_76","_ref_84","_ref_86","_ref_90","_ref_92","_ref_98","_ref_106","_ref_111","_ref_125","_ref_126","_ref_142","_ref_143","_ref_163","_ref_164","_ref_192","_ref_193","_ref_210","_ref_211","_ref_226","_ref_227","_ref_229","_ref_230","_ref_232","_ref_233","_ref_235","_ref_236","_ref_238","_ref_239","_ref_241","_ref_242","_ref_244","_ref_251","_ref_265","_ref_272","_ref_279","_ref_289","_ref_299","_ref_309","_ref_316"]},{"type":"op","aoid":"quantum","id":"eqn-decimal128-quantum","referencingIds":["_ref_75","_ref_77","_ref_81","_ref_85","_ref_87","_ref_91","_ref_93","_ref_99","_ref_114","_ref_115","_ref_127","_ref_128","_ref_144","_ref_145","_ref_165","_ref_166","_ref_194","_ref_195","_ref_212","_ref_213","_ref_252","_ref_266","_ref_273","_ref_300","_ref_310","_ref_317"]},{"type":"op","aoid":"sign","id":"dfn-decimal128-sign","referencingIds":["_ref_24","_ref_25","_ref_26","_ref_27","_ref_28","_ref_88","_ref_118","_ref_153","_ref_154","_ref_159","_ref_160","_ref_167","_ref_168","_ref_173","_ref_174","_ref_183","_ref_187","_ref_190","_ref_191","_ref_246","_ref_321","_ref_322","_ref_323"]},{"type":"term","term":"exponent","id":"dfn-decimal128-exponent","referencingIds":["_ref_0","_ref_32","_ref_39","_ref_44","_ref_47","_ref_51"]},{"type":"term","term":"significand","id":"dfn-decimal128-significand","referencingIds":["_ref_1","_ref_33","_ref_36"]},{"type":"term","term":"normalized","id":"dfn-decimal128-normalized","referencingIds":["_ref_49","_ref_50"]},{"type":"term","term":"denormalized","id":"dfn-decimal128-denormalized-","referencingIds":["_ref_53"]},{"type":"term","term":"decimal cohort","id":"dfn-decimal-cohort","referencingIds":["_ref_69","_ref_71"]},{"type":"term","term":"truncated exponent","refId":"sec-decimal-intro"},{"type":"term","term":"scaled significand","refId":"sec-decimal-intro"},{"type":"clause","id":"sec-decimal-intro","titleHTML":"Introduction","number":"","referencingIds":["_ref_318"]},{"type":"op","aoid":"ApplyRoundingModeToPositive","refId":"sec-decimal128-applyroundingmodetopositive"},{"type":"clause","id":"sec-decimal128-applyroundingmodetopositive","title":"ApplyRoundingModeToPositive ( m, roundingMode )","titleHTML":"ApplyRoundingModeToPositive ( m, roundingMode )","number":"1.1.1.1","referencingIds":["_ref_64","_ref_247"]},{"type":"op","aoid":"RoundToDecimal128Domain","refId":"sec-decimal128-roundtodecimal128domain"},{"type":"clause","id":"sec-decimal128-roundtodecimal128domain","title":"RoundToDecimal128Domain ( v [ , roundingMode ] )","titleHTML":"RoundToDecimal128Domain ( v [ , roundingMode ] )","number":"1.1.1","referencingIds":["_ref_62","_ref_83"]},{"type":"op","aoid":"PickQuantum","refId":"sec-decimal128-pickquantum"},{"type":"clause","id":"sec-decimal128-pickquantum","title":"PickQuantum ( d, v, preferredQuantum )","titleHTML":"PickQuantum ( d, v, preferredQuantum )","number":"1.1.2","referencingIds":["_ref_82","_ref_130","_ref_132","_ref_134","_ref_147","_ref_170","_ref_172","_ref_176","_ref_178","_ref_198","_ref_200","_ref_202","_ref_204","_ref_216","_ref_218","_ref_220","_ref_222","_ref_224","_ref_257"]},{"type":"op","aoid":"RoundAndPickQuantum","refId":"sec-decimal128-roundandpickquantum"},{"type":"clause","id":"sec-decimal128-roundandpickquantum","title":"RoundAndPickQuantum ( d, preferredQuantum [ , roundingMode ] )","titleHTML":"RoundAndPickQuantum ( d, preferredQuantum [ , roundingMode ] )","number":"1.1.3","referencingIds":["_ref_100","_ref_101","_ref_102","_ref_136","_ref_149","_ref_180","_ref_206","_ref_249","_ref_264","_ref_275"]},{"type":"op","aoid":"Decimal128Abs","refId":"sec-decimal128-abs"},{"type":"clause","id":"sec-decimal128-abs","title":"Decimal128Abs ( argument )","titleHTML":"Decimal128Abs ( argument )","number":"1.1.4","referencingIds":["_ref_89","_ref_117"]},{"type":"op","aoid":"Decimal128Negate","refId":"sec-decimal128-negate"},{"type":"clause","id":"sec-decimal128-negate","title":"Decimal128Negate ( argument )","titleHTML":"Decimal128Negate ( argument )","number":"1.1.5","referencingIds":["_ref_120"]},{"type":"op","aoid":"Decimal128ToDecimalString","refId":"sec-decimal128-decimal128todecimalstring"},{"type":"clause","id":"sec-decimal128-decimal128todecimalstring","title":"Decimal128ToDecimalString ( argument, preserveTrailingZeroes )","titleHTML":"Decimal128ToDecimalString ( argument, preserveTrailingZeroes )","number":"1.1.6","referencingIds":["_ref_268","_ref_270","_ref_271","_ref_274","_ref_276"]},{"type":"op","aoid":"Decimal128ToExponentialString","refId":"sec-decimal128toexponentialstring"},{"type":"clause","id":"sec-decimal128toexponentialstring","title":"Decimal128ToExponentialString ( argument, preserveTrailingZeroes )","titleHTML":"Decimal128ToExponentialString ( argument, preserveTrailingZeroes )","number":"1.1.7","referencingIds":["_ref_267","_ref_269","_ref_277"]},{"type":"op","aoid":"Decimal128ValueToObject","refId":"sec-decimal128-value-to-object"},{"type":"clause","id":"sec-decimal128-value-to-object","title":"Decimal128ValueToObject ( argument )","titleHTML":"Decimal128ValueToObject ( argument )","number":"1.1.8","referencingIds":["_ref_113","_ref_116","_ref_119","_ref_121","_ref_122","_ref_123","_ref_124","_ref_129","_ref_131","_ref_133","_ref_135","_ref_137","_ref_138","_ref_139","_ref_140","_ref_141","_ref_146","_ref_148","_ref_150","_ref_152","_ref_155","_ref_156","_ref_158","_ref_161","_ref_162","_ref_169","_ref_171","_ref_175","_ref_177","_ref_179","_ref_181","_ref_182","_ref_184","_ref_185","_ref_186","_ref_188","_ref_189","_ref_196","_ref_197","_ref_199","_ref_201","_ref_203","_ref_205","_ref_207","_ref_208","_ref_209","_ref_214","_ref_215","_ref_217","_ref_219","_ref_221","_ref_223","_ref_243","_ref_245","_ref_248","_ref_250","_ref_253","_ref_254","_ref_255","_ref_256","_ref_258","_ref_259","_ref_260","_ref_261","_ref_262","_ref_263"]},{"type":"clause","id":"sec-decimal-abstract-ops","titleHTML":"Abstract Operations","number":"1.1"},{"type":"term","term":"%Decimal128%","refId":"sec-the-decimal-constructor"},{"type":"op","aoid":"StringDecimalValue","refId":"sec-runtime-semantics-stringdecimalvalue"},{"type":"clause","id":"sec-runtime-semantics-stringdecimalvalue","titleHTML":"Runtime Semantics: StringDecimalValue","number":"1.2.1.1","referencingIds":["_ref_95","_ref_96"]},{"type":"clause","id":"sec-the-decimal128-constructor-value","title":"Decimal128 ( x )","titleHTML":"Decimal128 ( x )","number":"1.2.1"},{"type":"clause","id":"sec-the-decimal-constructor","titleHTML":"The Decimal128 Constructor","number":"1.2","referencingIds":["_ref_94"]},{"type":"clause","id":"sec-the-decimal-object","titleHTML":"The Decimal128 Object","number":"1"},{"type":"clause","id":"sec-decimal128.prototype.isnan","titleHTML":"Decimal128.prototype.isNaN ( )","number":"2.1"},{"type":"clause","id":"sec-decimal128.prototype.isfinite","titleHTML":"Decimal128.prototype.isFinite ( )","number":"2.2"},{"type":"clause","id":"sec-decimal128.prototype.exponent","titleHTML":"Decimal128.prototype.exponent ( )","number":"2.3"},{"type":"clause","id":"sec-decimal128.prototype.mantissa","titleHTML":"Decimal128.prototype.mantissa ( )","number":"2.4"},{"type":"clause","id":"sec-decimal128.prototype.precision","titleHTML":"Decimal128.prototype.precision","number":"2.5"},{"type":"clause","id":"sec-decimal128.prototype.abs","titleHTML":"Decimal128.prototype.abs ( )","number":"2.6"},{"type":"clause","id":"sec-decimal128.prototype.negate","titleHTML":"Decimal128.prototype.negate ( )","number":"2.7"},{"type":"clause","id":"sec-decimal128.prototype.add","title":"Decimal128.prototype.add ( x )","titleHTML":"Decimal128.prototype.add ( x )","number":"2.8"},{"type":"clause","id":"sec-decimal128.prototype.subtract","title":"Decimal128.prototype.subtract ( x )","titleHTML":"Decimal128.prototype.subtract ( x )","number":"2.9"},{"type":"clause","id":"sec-decimal128.prototype.multiply","title":"Decimal128.prototype.multiply ( x )","titleHTML":"Decimal128.prototype.multiply ( x )","number":"2.10"},{"type":"clause","id":"sec-decimal128.prototype.divide","title":"Decimal128.prototype.divide ( x )","titleHTML":"Decimal128.prototype.divide ( x )","number":"2.11"},{"type":"clause","id":"sec-decimal128.prototype.remainder","title":"Decimal128.prototype.remainder ( x )","titleHTML":"Decimal128.prototype.remainder ( x )","number":"2.12"},{"type":"clause","id":"sec-decimal128.prototype.compare","title":"Decimal128.prototype.compare ( x )","titleHTML":"Decimal128.prototype.compare ( x )","number":"2.13"},{"type":"clause","id":"sec-decimal128.prototype.equals","title":"Decimal128.prototype.equals ( x )","titleHTML":"Decimal128.prototype.equals ( x )","number":"2.14"},{"type":"clause","id":"sec-decimal128.prototype.notequals","title":"Decimal128.prototype.notEquals ( x )","titleHTML":"Decimal128.prototype.notEquals ( x )","number":"2.15"},{"type":"clause","id":"sec-decimal128.prototype.lessthan","title":"Decimal128.prototype.lessThan ( x )","titleHTML":"Decimal128.prototype.lessThan ( x )","number":"2.16"},{"type":"clause","id":"sec-decimal128.prototype.lessthanorequal","title":"Decimal128.prototype.lessThanOrEqual ( x )","titleHTML":"Decimal128.prototype.lessThanOrEqual ( x )","number":"2.17"},{"type":"clause","id":"sec-decimal128.prototype.greaterthan","title":"Decimal128.prototype.greaterThan ( x )","titleHTML":"Decimal128.prototype.greaterThan ( x )","number":"2.18"},{"type":"clause","id":"sec-decimal128.prototype.greaterthanorequal","title":"Decimal128.prototype.greaterThanOrEqual ( x )","titleHTML":"Decimal128.prototype.greaterThanOrEqual ( x )","number":"2.19"},{"type":"clause","id":"sec-decimal-method-round","title":"Decimal128.prototype.round ( numFractionalDigits [ , roundingMode ] )","titleHTML":"Decimal128.prototype.round ( numFractionalDigits [ , roundingMode ] )","number":"2.20"},{"type":"clause","id":"sec-decimal-method-scale10","title":"Decimal128.prototype.scale10 ( n )","titleHTML":"Decimal128.prototype.scale10 ( n )","number":"2.21"},{"type":"clause","id":"sec-decimal128.prototype.tostring","title":"Decimal128.prototype.toString ( [ options ] )","titleHTML":"Decimal128.prototype.toString ( [ options ] )","number":"2.22","referencingIds":["_ref_8"]},{"type":"clause","id":"sec-decimal128.prototype.toexponential","title":"Decimal128.prototype.toExponential ( [ options ] )","titleHTML":"Decimal128.prototype.toExponential ( [ options ] )","number":"2.23"},{"type":"clause","id":"sec-decimal128.prototype.tofixed","title":"Decimal128.prototype.toFixed ( [ options ] )","titleHTML":"Decimal128.prototype.toFixed ( [ options ] )","number":"2.24"},{"type":"clause","id":"sec-decimal128.prototype.toprecision","title":"Decimal128.prototype.toPrecision ( [ options ] )","titleHTML":"Decimal128.prototype.toPrecision ( [ options ] )","number":"2.25"},{"type":"clause","id":"sec-decimal128.prototype.valueof","title":"Decimal128.prototype.valueOf ( x )","titleHTML":"Decimal128.prototype.valueOf ( x )","number":"2.26"},{"type":"clause","id":"sec-decimal-prototype-properties","titleHTML":"Properties of the Decimal128 Prototype","number":"2"},{"type":"clause","id":"sec-number-constructor-number-value","title":"Number ( value )","titleHTML":"Number ( value )","number":"3.1.1.1"},{"type":"clause","id":"sec-number-constructor","titleHTML":"The Number Constructor","number":"3.1.1"},{"type":"clause","id":"sec-number-objects","titleHTML":"Number Objects","number":"3.1"},{"type":"op","aoid":"Decimal128ToBigInt","refId":"sec-numbertobigint"},{"type":"clause","id":"sec-numbertobigint","title":"Decimal128ToBigInt ( number )","titleHTML":"Decimal128ToBigInt ( number )","number":"3.2.1.1.1","referencingIds":["_ref_278"]},{"type":"clause","id":"sec-bigint-constructor-number-value","title":"BigInt ( value )","titleHTML":"BigInt ( value )","number":"3.2.1.1"},{"type":"clause","id":"sec-bigint-constructor","titleHTML":"The BigInt Constructor","number":"3.2.1"},{"type":"clause","id":"sec-bigint-objects","titleHTML":"BigInt Objects","number":"3.2"},{"type":"clause","id":"sec-numbers-and-dates","titleHTML":"Numbers and Dates","number":"3"},{"type":"term","term":"Intl mathematical value","id":"intl-mathematical-value","referencingIds":["_ref_280","_ref_288","_ref_315"]},{"type":"op","aoid":"ToIntlMathematicalValue","refId":"sec-tointlmathematicalvalue"},{"type":"clause","id":"sec-tointlmathematicalvalue","title":"ToIntlMathematicalValue ( value )","titleHTML":"ToIntlMathematicalValue ( value )","number":"4.1.1.1"},{"type":"op","aoid":"FormatNumericToString","refId":"sec-formatnumberstring"},{"type":"clause","id":"sec-formatnumberstring","title":"FormatNumericToString ( intlObject, x )","titleHTML":"FormatNumericToString ( intlObject, x )","number":"4.1.1.2","referencingIds":["_ref_320","_ref_324","_ref_325"]},{"type":"op","aoid":"ToRawPrecisionFn","id":"eqn-ToRawPrecisionFn","referencingIds":["_ref_302","_ref_304"]},{"type":"op","aoid":"ToRawPrecision","refId":"sec-torawprecision"},{"type":"clause","id":"sec-torawprecision","title":"ToRawPrecision ( x, minPrecision, maxPrecision, unsignedRoundingMode )","titleHTML":"ToRawPrecision ( x, minPrecision, maxPrecision, unsignedRoundingMode )","number":"4.1.1.3","referencingIds":["_ref_291","_ref_293"]},{"type":"op","aoid":"ToRawFixedFn","id":"eqn-ToRawFixedFn","referencingIds":["_ref_312","_ref_314"]},{"type":"op","aoid":"ToRawFixed","refId":"sec-torawfixed"},{"type":"clause","id":"sec-torawfixed","title":"ToRawFixed ( x, minFraction, maxFraction, roundingIncrement, unsignedRoundingMode )","titleHTML":"ToRawFixed ( x, minFraction, maxFraction, roundingIncrement, unsignedRoundingMode )","number":"4.1.1.4","referencingIds":["_ref_292","_ref_294"]},{"type":"op","aoid":"PartitionNumberPattern","refId":"sec-partitionnumberpattern"},{"type":"clause","id":"sec-partitionnumberpattern","title":"PartitionNumberPattern ( numberFormat, x )","titleHTML":"PartitionNumberPattern ( numberFormat, x )","number":"4.1.1.5"},{"type":"clause","id":"sec-numberformat-abstracts","titleHTML":"Abstract Operations for NumberFormat Objects","number":"4.1.1"},{"type":"clause","id":"numberformat-objects","titleHTML":"NumberFormat Objects","number":"4.1"},{"type":"op","aoid":"ResolvePlural","refId":"sec-resolveplural"},{"type":"clause","id":"sec-resolveplural","title":"ResolvePlural ( pluralRules, n )","titleHTML":"ResolvePlural ( pluralRules, n )","number":"4.2.1.1","referencingIds":["_ref_326","_ref_327"]},{"type":"op","aoid":"ResolvePluralRange","refId":"sec-resolvepluralrange"},{"type":"clause","id":"sec-resolvepluralrange","title":"ResolvePluralRange ( pluralRules, x, y )","titleHTML":"ResolvePluralRange ( pluralRules, x, y )","number":"4.2.1.2"},{"type":"clause","id":"sec-intl-pluralrules-abstracts","titleHTML":"Abstract Operations for PluralRules Objects","number":"4.2.1"},{"type":"clause","id":"pluralrules-objects","titleHTML":"PluralRules Objects","number":"4.2"},{"type":"clause","id":"sec-decimal-intl","titleHTML":"Amendments to the ECMAScript® 2024 Internationalization API Specification","number":"4"},{"type":"clause","id":"sec-copyright-and-software-license","title":"Copyright & Software License","titleHTML":"Copyright & Software License","number":"A"}]}`); +let biblio = JSON.parse(`{"refsByClause":{"sec-decimal128.prototype.exponent":["_ref_0","_ref_112","_ref_113","_ref_114","_ref_115"],"sec-decimal128.prototype.mantissa":["_ref_1","_ref_116","_ref_117","_ref_118","_ref_119","_ref_120","_ref_121","_ref_122","_ref_123","_ref_124","_ref_125","_ref_126"],"sec-decimal-method-round":["_ref_2","_ref_3","_ref_262","_ref_263","_ref_264","_ref_265","_ref_266","_ref_267","_ref_268","_ref_269"],"sec-decimal128.prototype.tofixed":["_ref_4","_ref_291","_ref_292","_ref_293"],"sec-decimal128.prototype.toprecision":["_ref_5","_ref_294","_ref_295","_ref_296","_ref_297"],"sec-decimal-intro":["_ref_6","_ref_7","_ref_8","_ref_9","_ref_10","_ref_11","_ref_12","_ref_13","_ref_14","_ref_15","_ref_16","_ref_17","_ref_18","_ref_19","_ref_20","_ref_21","_ref_22","_ref_23","_ref_24","_ref_25","_ref_26","_ref_27","_ref_28","_ref_29","_ref_30","_ref_31","_ref_32","_ref_33","_ref_34","_ref_35","_ref_36","_ref_37","_ref_38","_ref_39","_ref_40","_ref_41","_ref_42","_ref_43","_ref_44","_ref_45","_ref_46","_ref_47","_ref_48","_ref_49","_ref_50","_ref_51","_ref_52","_ref_53","_ref_54","_ref_55"],"sec-decimal128-roundtodecimal128domain":["_ref_56","_ref_57","_ref_58","_ref_59","_ref_60","_ref_61","_ref_62"],"sec-decimal128-applyroundingmodetopositive":["_ref_63","_ref_64","_ref_65"],"sec-decimal128-pickquantum":["_ref_66","_ref_67","_ref_68","_ref_69","_ref_70","_ref_71","_ref_72","_ref_73","_ref_74"],"sec-decimal128-roundandpickquantum":["_ref_75","_ref_76","_ref_77","_ref_78","_ref_79","_ref_80"],"sec-decimal128-abs":["_ref_81","_ref_82"],"sec-decimal128-negate":["_ref_83","_ref_84"],"sec-decimal128-decimal128todecimalstring":["_ref_85","_ref_86","_ref_87","_ref_88","_ref_89","_ref_90","_ref_91"],"sec-decimal128toexponentialstring":["_ref_92","_ref_93","_ref_94","_ref_95"],"sec-decimal128-value-to-object":["_ref_96"],"sec-the-decimal128-constructor-value":["_ref_97"],"sec-runtime-semantics-stringdecimalvalue":["_ref_98","_ref_99","_ref_100","_ref_101","_ref_102","_ref_103","_ref_104","_ref_105","_ref_106","_ref_107","_ref_108","_ref_109","_ref_110","_ref_111"],"sec-decimal128.prototype.precision":["_ref_127","_ref_128"],"sec-decimal128.prototype.abs":["_ref_129","_ref_130"],"sec-decimal128.prototype.negate":["_ref_131","_ref_132","_ref_133"],"sec-decimal128.prototype.add":["_ref_134","_ref_135","_ref_136","_ref_137","_ref_138","_ref_139","_ref_140","_ref_141","_ref_142","_ref_143","_ref_144","_ref_145","_ref_146","_ref_147"],"sec-decimal128.prototype.subtract":["_ref_148","_ref_149","_ref_150","_ref_151","_ref_152","_ref_153","_ref_154","_ref_155","_ref_156","_ref_157","_ref_158","_ref_159","_ref_160"],"sec-decimal128.prototype.multiply":["_ref_161","_ref_162","_ref_163","_ref_164","_ref_165","_ref_166","_ref_167","_ref_168","_ref_169","_ref_170","_ref_171","_ref_172","_ref_173","_ref_174","_ref_175","_ref_176","_ref_177","_ref_178","_ref_179","_ref_180","_ref_181","_ref_182","_ref_183","_ref_184","_ref_185","_ref_186","_ref_187","_ref_188","_ref_189","_ref_190","_ref_191"],"sec-decimal128.prototype.divide":["_ref_192","_ref_193","_ref_194","_ref_195","_ref_196","_ref_197","_ref_198","_ref_199","_ref_200","_ref_201","_ref_202","_ref_203","_ref_204","_ref_205","_ref_206","_ref_207","_ref_208","_ref_209","_ref_210","_ref_211","_ref_212","_ref_213","_ref_214","_ref_215","_ref_216","_ref_217","_ref_218","_ref_219","_ref_220","_ref_221","_ref_222","_ref_223","_ref_224","_ref_225","_ref_226"],"sec-decimal128.prototype.remainder":["_ref_227","_ref_228","_ref_229","_ref_230","_ref_231","_ref_232","_ref_233","_ref_234","_ref_235","_ref_236","_ref_237","_ref_238","_ref_239","_ref_240"],"sec-decimal128.prototype.compare":["_ref_241","_ref_242","_ref_243","_ref_244"],"sec-decimal128.prototype.equals":["_ref_245","_ref_246","_ref_247"],"sec-decimal128.prototype.notequals":["_ref_248","_ref_249","_ref_250"],"sec-decimal128.prototype.lessthan":["_ref_251","_ref_252","_ref_253"],"sec-decimal128.prototype.lessthanorequal":["_ref_254","_ref_255","_ref_256"],"sec-decimal128.prototype.greaterthan":["_ref_257","_ref_258","_ref_259"],"sec-decimal128.prototype.greaterthanorequal":["_ref_260","_ref_261"],"sec-decimal-method-scale10":["_ref_270","_ref_271","_ref_272","_ref_273","_ref_274","_ref_275","_ref_276","_ref_277","_ref_278","_ref_279","_ref_280","_ref_281","_ref_282","_ref_283","_ref_284"],"sec-decimal128.prototype.tostring":["_ref_285","_ref_286","_ref_287","_ref_288","_ref_289"],"sec-decimal128.prototype.toexponential":["_ref_290"],"sec-number-constructor-number-value":["_ref_298"],"sec-bigint-constructor-number-value":["_ref_299"],"sec-numbertobigint":["_ref_300"],"sec-tointlmathematicalvalue":["_ref_301","_ref_302","_ref_303","_ref_304","_ref_305"],"sec-formatnumberstring":["_ref_306","_ref_307","_ref_308","_ref_309","_ref_310","_ref_311","_ref_312","_ref_313","_ref_314","_ref_315"],"sec-torawprecision":["_ref_316","_ref_317","_ref_318","_ref_319","_ref_320","_ref_321","_ref_322","_ref_323","_ref_324","_ref_325"],"sec-torawfixed":["_ref_326","_ref_327","_ref_328","_ref_329","_ref_330","_ref_331","_ref_332","_ref_333","_ref_334","_ref_335"],"sec-partitionnumberpattern":["_ref_336","_ref_337","_ref_338","_ref_339","_ref_340","_ref_341","_ref_342","_ref_343","_ref_344"],"sec-resolveplural":["_ref_345","_ref_346"],"sec-resolvepluralrange":["_ref_347","_ref_348"]},"entries":[{"type":"clause","id":"sec-decimal-intro-","titleHTML":"Introduction","number":""},{"type":"term","term":"finite","id":"dfn-decimal128-finite","referencingIds":["_ref_10","_ref_11","_ref_14","_ref_21","_ref_27","_ref_32","_ref_35","_ref_38","_ref_40","_ref_43","_ref_52","_ref_55","_ref_99","_ref_303","_ref_307","_ref_317","_ref_327"]},{"type":"term","term":"zero","id":"dfn-decimal128-zero","referencingIds":["_ref_6","_ref_7","_ref_12","_ref_19","_ref_20","_ref_28","_ref_33","_ref_36","_ref_39","_ref_41","_ref_44","_ref_50","_ref_53","_ref_54","_ref_113","_ref_117","_ref_118","_ref_162","_ref_168"]},{"type":"term","term":"mathematical value","id":"decimal128-mathematical-value","referencingIds":["_ref_8","_ref_9","_ref_13","_ref_29","_ref_46","_ref_56","_ref_58","_ref_59","_ref_61","_ref_63","_ref_65","_ref_67","_ref_69","_ref_75","_ref_77","_ref_112","_ref_115","_ref_116","_ref_125","_ref_245","_ref_248","_ref_251","_ref_254","_ref_257","_ref_302","_ref_304","_ref_305","_ref_306","_ref_308","_ref_311","_ref_316","_ref_318","_ref_319","_ref_322","_ref_324","_ref_326","_ref_328","_ref_329","_ref_332","_ref_334","_ref_340"]},{"type":"op","aoid":"MV","id":"dfn-decimal128-mv","referencingIds":["_ref_15","_ref_16","_ref_17","_ref_102","_ref_103","_ref_104","_ref_106","_ref_107","_ref_109","_ref_110","_ref_241","_ref_242","_ref_243","_ref_244","_ref_246","_ref_247","_ref_249","_ref_250","_ref_252","_ref_253","_ref_255","_ref_256","_ref_258","_ref_259","_ref_260","_ref_261"]},{"type":"term","term":"Decimal128 rounding mode","id":"dfn-decimal128-rounding-mode","referencingIds":["_ref_4","_ref_18","_ref_57","_ref_64","_ref_76"]},{"type":"term","term":"default rounding mode","id":"dfn-decimal128-default-rounding-mode","referencingIds":["_ref_2","_ref_3"]},{"type":"table","id":"table-decimal128-rounding-modes","number":1,"caption":"Table 1: Rounding modes in Decimal128 compared to IEEE 754 rounding modes"},{"type":"op","aoid":"cohort","id":"eqn-decimal128-cohort","referencingIds":["_ref_70","_ref_71","_ref_73","_ref_81","_ref_83","_ref_87","_ref_92","_ref_100","_ref_114","_ref_121","_ref_138","_ref_139","_ref_153","_ref_154","_ref_174","_ref_175","_ref_201","_ref_209","_ref_230","_ref_231","_ref_263","_ref_271","_ref_285","_ref_291","_ref_295","_ref_300","_ref_310","_ref_320","_ref_330","_ref_337"]},{"type":"op","aoid":"quantum","id":"eqn-decimal128-quantum","referencingIds":["_ref_72","_ref_74","_ref_78","_ref_82","_ref_84","_ref_88","_ref_93","_ref_101","_ref_127","_ref_128","_ref_140","_ref_141","_ref_155","_ref_156","_ref_176","_ref_177","_ref_202","_ref_210","_ref_232","_ref_233","_ref_272","_ref_286","_ref_321","_ref_331","_ref_338"]},{"type":"op","aoid":"sign","id":"dfn-decimal128-sign","referencingIds":["_ref_22","_ref_23","_ref_24","_ref_25","_ref_26","_ref_85","_ref_94","_ref_131","_ref_164","_ref_165","_ref_170","_ref_171","_ref_178","_ref_179","_ref_184","_ref_185","_ref_194","_ref_198","_ref_203","_ref_206","_ref_266","_ref_292","_ref_296","_ref_342","_ref_343","_ref_344"]},{"type":"term","term":"exponent","id":"dfn-decimal128-exponent","referencingIds":["_ref_0","_ref_30","_ref_37","_ref_42","_ref_45","_ref_49","_ref_297"]},{"type":"term","term":"significand","id":"dfn-decimal128-significand","referencingIds":["_ref_1","_ref_31","_ref_34"]},{"type":"term","term":"normalized","id":"dfn-decimal128-normalized","referencingIds":["_ref_47","_ref_48"]},{"type":"term","term":"denormalized","id":"dfn-decimal128-denormalized-","referencingIds":["_ref_51"]},{"type":"term","term":"decimal cohort","id":"dfn-decimal-cohort","referencingIds":["_ref_66","_ref_68"]},{"type":"term","term":"truncated exponent","refId":"sec-decimal-intro"},{"type":"term","term":"scaled significand","refId":"sec-decimal-intro"},{"type":"clause","id":"sec-decimal-intro","titleHTML":"Introduction","number":"","referencingIds":["_ref_124","_ref_339"]},{"type":"op","aoid":"ApplyRoundingModeToPositive","refId":"sec-decimal128-applyroundingmodetopositive"},{"type":"clause","id":"sec-decimal128-applyroundingmodetopositive","title":"ApplyRoundingModeToPositive ( m, roundingMode )","titleHTML":"ApplyRoundingModeToPositive ( m, roundingMode )","number":"1.1.1.1","referencingIds":["_ref_62","_ref_267","_ref_293"]},{"type":"op","aoid":"RoundToDecimal128Domain","refId":"sec-decimal128-roundtodecimal128domain"},{"type":"clause","id":"sec-decimal128-roundtodecimal128domain","title":"RoundToDecimal128Domain ( v [ , roundingMode ] )","titleHTML":"RoundToDecimal128Domain ( v [ , roundingMode ] )","number":"1.1.1","referencingIds":["_ref_60","_ref_80"]},{"type":"op","aoid":"PickQuantum","refId":"sec-decimal128-pickquantum"},{"type":"clause","id":"sec-decimal128-pickquantum","title":"PickQuantum ( d, v, qPreferred )","titleHTML":"PickQuantum ( d, v, qPreferred )","number":"1.1.2","referencingIds":["_ref_79","_ref_143","_ref_145","_ref_158","_ref_181","_ref_183","_ref_187","_ref_189","_ref_218","_ref_220","_ref_222","_ref_224","_ref_236","_ref_238","_ref_240","_ref_265","_ref_277"]},{"type":"op","aoid":"RoundAndPickQuantum","refId":"sec-decimal128-roundandpickquantum"},{"type":"clause","id":"sec-decimal128-roundandpickquantum","title":"RoundAndPickQuantum ( v, preferredQuantum [ , roundingMode ] )","titleHTML":"RoundAndPickQuantum ( v, preferredQuantum [ , roundingMode ] )","number":"1.1.3","referencingIds":["_ref_105","_ref_108","_ref_111","_ref_147","_ref_160","_ref_191","_ref_226","_ref_269","_ref_284"]},{"type":"op","aoid":"Decimal128Abs","refId":"sec-decimal128-abs"},{"type":"clause","id":"sec-decimal128-abs","title":"Decimal128Abs ( argument )","titleHTML":"Decimal128Abs ( argument )","number":"1.1.4","referencingIds":["_ref_86","_ref_95","_ref_130"]},{"type":"op","aoid":"Decimal128Negate","refId":"sec-decimal128-negate"},{"type":"clause","id":"sec-decimal128-negate","title":"Decimal128Negate ( argument )","titleHTML":"Decimal128Negate ( argument )","number":"1.1.5","referencingIds":["_ref_133"]},{"type":"op","aoid":"CanonicalizeDecimalString","refId":"sec-decimal128-canonicalizedecimalstring"},{"type":"clause","id":"sec-decimal128-canonicalizedecimalstring","title":"CanonicalizeDecimalString ( digits )","titleHTML":"CanonicalizeDecimalString ( digits )","number":"1.1.6","referencingIds":["_ref_89","_ref_90","_ref_91","_ref_287"]},{"type":"op","aoid":"Decimal128ToDecimalString","refId":"sec-decimal128-decimal128todecimalstring"},{"type":"clause","id":"sec-decimal128-decimal128todecimalstring","title":"Decimal128ToDecimalString ( argument, preserveTrailingZeroes )","titleHTML":"Decimal128ToDecimalString ( argument, preserveTrailingZeroes )","number":"1.1.7","referencingIds":["_ref_289","_ref_294"]},{"type":"op","aoid":"Decimal128ToExponentialString","refId":"sec-decimal128toexponentialstring"},{"type":"clause","id":"sec-decimal128toexponentialstring","title":"Decimal128ToExponentialString ( argument, preserveTrailingZeroes )","titleHTML":"Decimal128ToExponentialString ( argument, preserveTrailingZeroes )","number":"1.1.8","referencingIds":["_ref_288","_ref_290","_ref_298"]},{"type":"op","aoid":"Decimal128ValueToObject","refId":"sec-decimal128-value-to-object"},{"type":"clause","id":"sec-decimal128-value-to-object","title":"Decimal128ValueToObject ( argument )","titleHTML":"Decimal128ValueToObject ( argument )","number":"1.1.9","referencingIds":["_ref_119","_ref_120","_ref_122","_ref_123","_ref_126","_ref_129","_ref_132","_ref_134","_ref_135","_ref_136","_ref_137","_ref_142","_ref_144","_ref_146","_ref_148","_ref_149","_ref_150","_ref_151","_ref_152","_ref_157","_ref_159","_ref_161","_ref_163","_ref_166","_ref_167","_ref_169","_ref_172","_ref_173","_ref_180","_ref_182","_ref_186","_ref_188","_ref_190","_ref_192","_ref_193","_ref_195","_ref_196","_ref_197","_ref_199","_ref_200","_ref_204","_ref_205","_ref_207","_ref_208","_ref_211","_ref_212","_ref_213","_ref_214","_ref_215","_ref_216","_ref_217","_ref_219","_ref_221","_ref_223","_ref_225","_ref_227","_ref_228","_ref_229","_ref_234","_ref_235","_ref_237","_ref_239","_ref_262","_ref_264","_ref_268","_ref_270","_ref_273","_ref_274","_ref_275","_ref_276","_ref_278","_ref_279","_ref_280","_ref_281","_ref_282","_ref_283"]},{"type":"clause","id":"sec-decimal-abstract-ops","titleHTML":"Abstract Operations","number":"1.1"},{"type":"term","term":"%Decimal128%","refId":"sec-the-decimal-constructor"},{"type":"op","aoid":"StringDecimalValue","refId":"sec-runtime-semantics-stringdecimalvalue"},{"type":"clause","id":"sec-runtime-semantics-stringdecimalvalue","titleHTML":"Runtime Semantics: StringDecimalValue","number":"1.2.1.1","referencingIds":["_ref_97","_ref_98"]},{"type":"clause","id":"sec-the-decimal128-constructor-value","title":"Decimal128 ( x )","titleHTML":"Decimal128 ( x )","number":"1.2.1"},{"type":"clause","id":"sec-the-decimal-constructor","titleHTML":"The Decimal128 Constructor","number":"1.2","referencingIds":["_ref_96"]},{"type":"clause","id":"sec-the-decimal-object","titleHTML":"The Decimal128 Object","number":"1"},{"type":"clause","id":"sec-decimal128.prototype.isnan","titleHTML":"Decimal128.prototype.isNaN ( )","number":"2.1"},{"type":"clause","id":"sec-decimal128.prototype.isfinite","titleHTML":"Decimal128.prototype.isFinite ( )","number":"2.2"},{"type":"clause","id":"sec-decimal128.prototype.exponent","titleHTML":"Decimal128.prototype.exponent ( )","number":"2.3"},{"type":"clause","id":"sec-decimal128.prototype.mantissa","titleHTML":"Decimal128.prototype.mantissa ( )","number":"2.4"},{"type":"clause","id":"sec-decimal128.prototype.precision","titleHTML":"Decimal128.prototype.precision","number":"2.5"},{"type":"clause","id":"sec-decimal128.prototype.abs","titleHTML":"Decimal128.prototype.abs ( )","number":"2.6"},{"type":"clause","id":"sec-decimal128.prototype.negate","titleHTML":"Decimal128.prototype.negate ( )","number":"2.7"},{"type":"clause","id":"sec-decimal128.prototype.add","title":"Decimal128.prototype.add ( x )","titleHTML":"Decimal128.prototype.add ( x )","number":"2.8"},{"type":"clause","id":"sec-decimal128.prototype.subtract","title":"Decimal128.prototype.subtract ( x )","titleHTML":"Decimal128.prototype.subtract ( x )","number":"2.9"},{"type":"clause","id":"sec-decimal128.prototype.multiply","title":"Decimal128.prototype.multiply ( x )","titleHTML":"Decimal128.prototype.multiply ( x )","number":"2.10"},{"type":"clause","id":"sec-decimal128.prototype.divide","title":"Decimal128.prototype.divide ( x )","titleHTML":"Decimal128.prototype.divide ( x )","number":"2.11"},{"type":"clause","id":"sec-decimal128.prototype.remainder","title":"Decimal128.prototype.remainder ( x )","titleHTML":"Decimal128.prototype.remainder ( x )","number":"2.12"},{"type":"clause","id":"sec-decimal128.prototype.compare","title":"Decimal128.prototype.compare ( x )","titleHTML":"Decimal128.prototype.compare ( x )","number":"2.13"},{"type":"clause","id":"sec-decimal128.prototype.equals","title":"Decimal128.prototype.equals ( x )","titleHTML":"Decimal128.prototype.equals ( x )","number":"2.14"},{"type":"clause","id":"sec-decimal128.prototype.notequals","title":"Decimal128.prototype.notEquals ( x )","titleHTML":"Decimal128.prototype.notEquals ( x )","number":"2.15"},{"type":"clause","id":"sec-decimal128.prototype.lessthan","title":"Decimal128.prototype.lessThan ( x )","titleHTML":"Decimal128.prototype.lessThan ( x )","number":"2.16"},{"type":"clause","id":"sec-decimal128.prototype.lessthanorequal","title":"Decimal128.prototype.lessThanOrEqual ( x )","titleHTML":"Decimal128.prototype.lessThanOrEqual ( x )","number":"2.17"},{"type":"clause","id":"sec-decimal128.prototype.greaterthan","title":"Decimal128.prototype.greaterThan ( x )","titleHTML":"Decimal128.prototype.greaterThan ( x )","number":"2.18"},{"type":"clause","id":"sec-decimal128.prototype.greaterthanorequal","title":"Decimal128.prototype.greaterThanOrEqual ( x )","titleHTML":"Decimal128.prototype.greaterThanOrEqual ( x )","number":"2.19"},{"type":"clause","id":"sec-decimal-method-round","title":"Decimal128.prototype.round ( numFractionalDigits [ , roundingMode ] )","titleHTML":"Decimal128.prototype.round ( numFractionalDigits [ , roundingMode ] )","number":"2.20"},{"type":"clause","id":"sec-decimal-method-scale10","title":"Decimal128.prototype.scale10 ( n )","titleHTML":"Decimal128.prototype.scale10 ( n )","number":"2.21"},{"type":"clause","id":"sec-decimal128.prototype.tostring","title":"Decimal128.prototype.toString ( [ options ] )","titleHTML":"Decimal128.prototype.toString ( [ options ] )","number":"2.22","referencingIds":["_ref_5"]},{"type":"clause","id":"sec-decimal128.prototype.toexponential","title":"Decimal128.prototype.toExponential ( [ options ] )","titleHTML":"Decimal128.prototype.toExponential ( [ options ] )","number":"2.23"},{"type":"clause","id":"sec-decimal128.prototype.tofixed","title":"Decimal128.prototype.toFixed ( [ options ] )","titleHTML":"Decimal128.prototype.toFixed ( [ options ] )","number":"2.24"},{"type":"clause","id":"sec-decimal128.prototype.toprecision","title":"Decimal128.prototype.toPrecision ( [ options ] )","titleHTML":"Decimal128.prototype.toPrecision ( [ options ] )","number":"2.25"},{"type":"clause","id":"sec-decimal128.prototype.valueof","title":"Decimal128.prototype.valueOf ( x )","titleHTML":"Decimal128.prototype.valueOf ( x )","number":"2.26"},{"type":"clause","id":"sec-decimal-prototype-properties","titleHTML":"Properties of the Decimal128 Prototype","number":"2"},{"type":"clause","id":"sec-number-constructor-number-value","title":"Number ( value )","titleHTML":"Number ( value )","number":"3.1.1.1"},{"type":"clause","id":"sec-number-constructor","titleHTML":"The Number Constructor","number":"3.1.1"},{"type":"clause","id":"sec-number-objects","titleHTML":"Number Objects","number":"3.1"},{"type":"op","aoid":"Decimal128ToBigInt","refId":"sec-numbertobigint"},{"type":"clause","id":"sec-numbertobigint","title":"Decimal128ToBigInt ( number )","titleHTML":"Decimal128ToBigInt ( number )","number":"3.2.1.1.1","referencingIds":["_ref_299"]},{"type":"clause","id":"sec-bigint-constructor-number-value","title":"BigInt ( value )","titleHTML":"BigInt ( value )","number":"3.2.1.1"},{"type":"clause","id":"sec-bigint-constructor","titleHTML":"The BigInt Constructor","number":"3.2.1"},{"type":"clause","id":"sec-bigint-objects","titleHTML":"BigInt Objects","number":"3.2"},{"type":"clause","id":"sec-numbers-and-dates","titleHTML":"Numbers and Dates","number":"3"},{"type":"term","term":"Intl mathematical value","id":"intl-mathematical-value","referencingIds":["_ref_301","_ref_309","_ref_336"]},{"type":"op","aoid":"ToIntlMathematicalValue","refId":"sec-tointlmathematicalvalue"},{"type":"clause","id":"sec-tointlmathematicalvalue","title":"ToIntlMathematicalValue ( value )","titleHTML":"ToIntlMathematicalValue ( value )","number":"4.1.1.1"},{"type":"op","aoid":"FormatNumericToString","refId":"sec-formatnumberstring"},{"type":"clause","id":"sec-formatnumberstring","title":"FormatNumericToString ( intlObject, x )","titleHTML":"FormatNumericToString ( intlObject, x )","number":"4.1.1.2","referencingIds":["_ref_341","_ref_345","_ref_346"]},{"type":"op","aoid":"ToRawPrecisionFn","id":"eqn-ToRawPrecisionFn","referencingIds":["_ref_323","_ref_325"]},{"type":"op","aoid":"ToRawPrecision","refId":"sec-torawprecision"},{"type":"clause","id":"sec-torawprecision","title":"ToRawPrecision ( x, minPrecision, maxPrecision, unsignedRoundingMode )","titleHTML":"ToRawPrecision ( x, minPrecision, maxPrecision, unsignedRoundingMode )","number":"4.1.1.3","referencingIds":["_ref_312","_ref_314"]},{"type":"op","aoid":"ToRawFixedFn","id":"eqn-ToRawFixedFn","referencingIds":["_ref_333","_ref_335"]},{"type":"op","aoid":"ToRawFixed","refId":"sec-torawfixed"},{"type":"clause","id":"sec-torawfixed","title":"ToRawFixed ( x, minFraction, maxFraction, roundingIncrement, unsignedRoundingMode )","titleHTML":"ToRawFixed ( x, minFraction, maxFraction, roundingIncrement, unsignedRoundingMode )","number":"4.1.1.4","referencingIds":["_ref_313","_ref_315"]},{"type":"op","aoid":"PartitionNumberPattern","refId":"sec-partitionnumberpattern"},{"type":"clause","id":"sec-partitionnumberpattern","title":"PartitionNumberPattern ( numberFormat, x )","titleHTML":"PartitionNumberPattern ( numberFormat, x )","number":"4.1.1.5"},{"type":"clause","id":"sec-numberformat-abstracts","titleHTML":"Abstract Operations for NumberFormat Objects","number":"4.1.1"},{"type":"clause","id":"numberformat-objects","titleHTML":"NumberFormat Objects","number":"4.1"},{"type":"op","aoid":"ResolvePlural","refId":"sec-resolveplural"},{"type":"clause","id":"sec-resolveplural","title":"ResolvePlural ( pluralRules, n )","titleHTML":"ResolvePlural ( pluralRules, n )","number":"4.2.1.1","referencingIds":["_ref_347","_ref_348"]},{"type":"op","aoid":"ResolvePluralRange","refId":"sec-resolvepluralrange"},{"type":"clause","id":"sec-resolvepluralrange","title":"ResolvePluralRange ( pluralRules, x, y )","titleHTML":"ResolvePluralRange ( pluralRules, x, y )","number":"4.2.1.2"},{"type":"clause","id":"sec-intl-pluralrules-abstracts","titleHTML":"Abstract Operations for PluralRules Objects","number":"4.2.1"},{"type":"clause","id":"pluralrules-objects","titleHTML":"PluralRules Objects","number":"4.2"},{"type":"clause","id":"sec-decimal-intl","titleHTML":"Amendments to the ECMAScript® 2024 Internationalization API Specification","number":"4"},{"type":"clause","id":"sec-copyright-and-software-license","title":"Copyright & Software License","titleHTML":"Copyright & Software License","number":"A"}]}`); ;let usesMultipage = false