Class CurrencyScales

java.lang.Object
com.tuladb.currency.CurrencyScales

public final class CurrencyScales extends Object
Per-currency scales from the engine's currency registry.

The first use of a numeric asks the engine (MSG_CURRENCY_GET); a found scale is cached forever, because the engine refuses to change a registered currency's scale. A miss is cached for NOT_REGISTERED_TTL_NANOS (2 s): a currency registered elsewhere is picked up within that window, and an unregistered one does not cost a round trip per call; until then it is a CurrencyNotRegisteredException, never a guessed scale. A currency created through createCurrency(com.tuladb.Models.CurrencyInstance) is cached at once. Safe to share between threads.


 CurrencyScales scales = new CurrencyScales(client::getCurrency, client::createCurrency);
 long minor = scales.toMinor(124, "800.00");   // 80000
 String text = scales.format(124, minor);      // "800.00"