/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 Ġ- Ġ 2 0 2 2 Ġv ini 2 0 0 3 Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġdev . v ini 2 0 0 3 . hammer . core . api . common . util Ċ Ċ object ĠNumber Utils Ġ{ Ċ ĉ private Ġval ĠUN ITS Ġ= ĠarrayOf ("", Ġ" k ", Ġ" M ", Ġ" G ", Ġ" T ", Ġ" P ", Ġ" E ", Ġ" Z ", Ġ" Y ") ĊĉĊ ĉ @ Jvm Static Ċ ĉ fun Ġget Unit ( exponent : ĠInt ): ĠString Ġ{ Ċĉ ĉ if Ġ( exponent Ġ< Ġ 0 ) Ġ{ Ċĉĉ ĉ return Ġ"" Ċĉ ĉ } Ġelse Ġ{ Ċĉĉ ĉ return ĠUN ITS . getOrElse ( exponent ) Ġ{ Ġ" âĪ ŀ " Ġ} Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ @ Jvm Static Ċ ĉ fun Ġget Exponent ( number : ĠNumber ): ĠInt Ġ{ Ċĉ ĉ var Ġnumber Ġ= Ġnumber . toDouble () ĊĉĉĊĉ ĉ var Ġexponent Ġ= Ġ 0 ĊĉĉĊĉ ĉ while Ġ( number Ġ>= Ġ 1 0 0 0 . 0 ) Ġ{ Ċĉĉ ĉ number Ġ/= Ġ 1 0 0 0 . 0 ĊĉĉĉĊĉĉ ĉ exponent Ġ+= Ġ 1 Ċĉ ĉ } ĊĉĉĊĉ ĉ return Ġexponent Ċ ĉ } ĊĉĊ ĉ @ Jvm Static Ċ ĉ fun Ġget Pretty String ( number : ĠNumber , Ġunit : ĠString ): ĠString Ġ{ Ċĉ ĉ return ĠString . format ("% , d % s ", Ġnumber , Ġunit ) Ċ ĉ } ĊĉĊ ĉ @ Jvm Static Ċ ĉ fun Ġget Pretty Short ened String ( number : ĠNumber , Ġunit : ĠString ): ĠString Ġ{ Ċĉ ĉ var Ġexponent Ġ= Ġget Exponent ( number ) Ċĉ ĉ val Ġsymbol Ġ= Ġget Unit ( exponent ) ĊĉĉĊĉ ĉ var Ġshort ened Number Ġ= Ġnumber . toDouble () ĊĉĉĊĉ ĉ while ( exponent Ġ> Ġ 0 ) Ġ{ Ċĉĉ ĉ -- exponent ĊĉĉĉĊĉĉ ĉ short ened Number Ġ/= Ġ 1 0 0 0 Ċĉ ĉ } ĊĉĉĊĉ ĉ return ĠString . format ("% ,. 2 f % s % s ", Ġshort ened Number , Ġsymbol , Ġunit ) Ċ ĉ } Ċ }