++ed by:

4 PAUSE users
2 non-PAUSE users.

Nova Patch


CLDR::Number::FAQ - FAQ for CLDR::Number


This document describes CLDR::Number v0.10, built with Unicode CLDR v24.


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 and 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.

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 to 0. Beware though that some currencies have a number of fraction digits other than two, so it is not safe to set minimum_fraction_digits and maximum_fraction_digits to 2 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 the locale attribute nor does it provide a default_currency_code attribute like the default_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, the 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

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.