package Ġorg . jetbrains . project or . common . statistics Ċ Ċ import Ġorg . jetbrains . project or . common . misc . toString Ċ import Ġkotlin . math . absolute Value Ċ import Ġkotlin . math . round To Long Ċ Ċ sealed Ġclass ĠRound ing Strategy Ġ{ ĊĊĠ Ġabstract Ġfun Ġround ( value : ĠDouble ): ĠString ĊĊĊĠ Ġclass ĠFraction Digits ( private Ġval Ġfraction Digits To Leave : ĠInt ) Ġ: ĠRound ing Strategy () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġround ( value : ĠDouble ): ĠString Ġ= Ġvalue . toString ( fraction Digits To Leave ) ĊĠ Ġ} ĊĊĠ Ġobject ĠMultip lier Ġ: ĠRound ing Strategy () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġround ( value : ĠDouble ): ĠString Ġ{ ĊĠĠĠĠĠ Ġ// Ġtodo : Ġsupport Ġmore Ġcoefficients Ġand Ġprovide Ġlogic Ġfor Ġfraction al Ġnumbers ĊĠĠĠĠĠ Ġval Ġdigit Count Ġ= Ġvalue . absolute Value . round To Long (). toString (). length ĊĊĠĠĠĠĠ Ġval Ġint Ġ= Ġvalue . round To Long () ĊĊĠĠĠĠĠ Ġval Ġ( coefficient , Ġdegree ) Ġ= Ġcoefficient To Degree Asc ĊĠĠĠĠĠĠĠ Ġ. last OrNull Ġ{ Ġ(_, Ġdegree ) Ġ-> Ġdegree Ġ< Ġdigit Count Ġ} ĊĠĠĠĠĠĠĠ Ġ?: Ġno Coefficient To Degree ĊĊĠĠĠĠĠ Ġreturn Ġ"${ int . toString (). drop Last ( degree )} $ coefficient " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġno Coefficient To Degree Ġ= Ġ"" Ġto Ġ 0 ĊĊĠĠĠ Ġprivate Ġval Ġcoefficient To Degree Asc Ġ= ĠlistOf ( ĊĠĠĠĠĠ Ġ" K " Ġto Ġ 3 , ĊĠĠĠĠĠ Ġ" M " Ġto Ġ 6 ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ } Ċ