NAME
CLDR::Number::FAQ - FAQ for CLDR::Number
VERSION
This document describes CLDR::Number v0.09, built with Unicode CLDR v24.
FAQ
- What’s the status of this project?
-
CLDR::Number is a stable project used in production by Shutterstock on www.shutterstock.com for formatting numbers, percents, and prices in twenty languages, ten currencies, and myriad countries.
- How do I set precision?
-
The attributes
minimum_fraction_digits
andmaximum_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. - How do I remove cents?
-
When displaying whole monetary numbers, it is sometimes desired to leave off the fraction digits (e.g. cents) for marketing purposes. To do this, set the
maximum_fraction_digits
attribute to0
. Beware though that some currencies have a number of fraction digits other than two, so it is not safe to setminimum_fraction_digits
andmaximum_fraction_digits
to2
for arbitrary currencies. - How do I set a default currency?
-
CLDR::Number::Format::Currency does not provide a default currency for the
currency_code
attribute like we have for thelocale
attribute nor does it provide a default_currency_code attribute like thedefault_locale
attribute. 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, thecurrency_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
- How do I format years?
-
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.