ecma402 icon indicating copy to clipboard operation
ecma402 copied to clipboard

Normative: Allow users to specify rounding based on cash denominations in common use

Open ben-allen opened this issue 1 year ago • 5 comments

fix #134 fix #835

For some currencies, the number of fractional digits and rounding increment used when dealing with cash values differs from the fractional digits/rounding increments used in financial contexts, with the cash contexts being limited to what's allowed for by the smallest currency denominations in actual circulation. ISO 4217 data uses the values for financial rounding, which is often inappropriate for common usage, while CLDR's currency data has separate attributes for:

  1. cash fractional digits and financial fractional digits
  2. cash rounding and financial rounding

This PR allows users to specify a new "currencyPrecision" attribute, which can be set to either "cash" (using CLDR's cash data) or "financial" (using CLDR's financial data, which is almost identical to ISO 4217's values).

This PR makes CLDR normative.

Note 1: I'm not confident about the wording used in CurrencyDigits and the new CurrencyRounding AOs to describe the CLDR data pulled in -- this is to be taken as a best first guess rather than a definitive attempt. Note 2: Current version shows whether "cash" or "financial" rounding has been set in resolvedOptions, which may not be necessary, as the actual values used for fractional digits and rounding increment are already visible elsewhere in resolvedOptions.

ben-allen avatar Oct 18 '23 16:10 ben-allen