package Ġtech . sk ot . core Ċ Ċ import Ġplatform . Foundation . NS Date Ċ Ċ // import Ġjava . text . Decimal Format Ċ // import Ġjava . text . NumberFormat Ċ // import Ġjava . util .* Ċ // Ċ // private Ġval Ġmap From atter Ġ= Ġmutable Map Of < String , ĠNumber Format >() Ċ // Ċ // actual Ġfun ĠDouble . as Price ( iso Currency : ĠString ) Ġ= Ġget Formatter ( iso Currency , ĠLocale . getDefault ()). format ( this ) Ċ // Ċ // private Ġfun Ġget Formatter ( iso Currency : ĠString , Ġlocale : ĠLocale ): ĠNumber Format Ġ{ Ċ // ĠĠĠ Ġval Ġkey Ġ= Ġ"${ iso Currency }_${ locale . country }" Ċ // ĠĠĠ Ġreturn Ġmap From atter [ key ] Ġ?: ĠDecimal Format . getC urrency Instance ( locale ). apply Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġmaximum Fraction Digits Ġ= Ġ 2 Ċ // ĠĠĠĠĠĠĠ Ġminimum Fraction Digits Ġ= Ġ 0 Ċ // ĠĠĠĠĠĠĠ Ġcurrency Ġ= ĠCurrency . getInstance ( iso Currency ) Ċ // ĠĠĠĠĠĠĠ Ġmap From atter [ key ] Ġ= Ġthis Ċ // ĠĠĠ Ġ} Ċ //} Ċ Ċ // private Ġval Ġmap From atter Ġ= Ġmutable Map Of < String , ĠNumber Formatter >() Ċ Ċ actual Ġfun ĠDouble . as Price ( iso Currency : ĠString , Ġmaximum Fraction Digits Ġ: ĠInt , Ġminimum Fraction Digits Ġ: ĠInt ) Ġ= Ġ"" Ċ Ċ // private Ġfun Ġget Formatter ( iso Currency : ĠString , Ġlocale : NS Locale ): ĠNumber Formatter Ġ{ Ċ // ĠĠĠ Ġval Ġkey Ġ= Ġ"${ iso Currency }_${ locale }" Ċ // ĠĠĠ Ġreturn Ġmap From atter [ key ] Ġ?: ĠDecimal Format . getC urrency Instance ( locale ). apply Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġmaximum Fraction Digits Ġ= Ġ 2 Ċ // ĠĠĠĠĠĠĠ Ġminimum Fraction Digits Ġ= Ġ 0 Ċ // ĠĠĠĠĠĠĠ Ġcurrency Ġ= ĠCurrency . getInstance ( iso Currency ) Ċ // ĠĠĠĠĠĠĠ Ġmap From atter [ key ] Ġ= Ġthis Ċ // ĠĠĠ Ġ} Ċ //}