CLDR::Number::FAQ - FAQ for CLDR::Number
This document describes CLDR::Number v0.09, built with Unicode CLDR v24.
maximum_fraction_digits can be used.
If you always want a specific number of fraction digits,
also known as precision,
set both of these attributes to the same number.
When displaying whole monetary numbers,
it is sometimes desired to leave off the fraction digits (e.g.
cents) for marketing purposes.
To do this,
maximum_fraction_digits attribute to
Beware though that some currencies have a number of fraction digits other than two,
so it is not safe to set
2 for arbitrary currencies.
CLDR::Number::Format::Currency does not provide a default currency for the
currency_code attribute like we have for the
locale attribute nor does it provide a default_currency_code attribute like the
This is because a price without a known currency has no known value.
Setting a default currency is just as inaccurate as setting a default number.
If your application depends on a default currency,
currency_code attribute can be explicitly set.
“Note: Currency values should never be interchanged without a known currency code. You never want the number 3.5 interpreted as $3.5 by one user and ¥3.5 by another. Locale data contains localization information for currencies, not a currency value for a country. A currency amount logically consists of a numeric value, plus an accompanying currency code (or equivalent).” —Unicode Technical Standard #35
Years are a type of date, and dates have very different formatting rules than regular numbers. Resources for localized date/time formatting include DateTime, DateTime::Locale, and UTS #35: Unicode LDML, Part 4: Dates.