Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Безымянный 20.10.2012 03:42
@numberFormat[dNumber;hParam][sNumber;iFracLength;iTriadCount;tPart;sIntegerPart;sMantissa;sNumberOut;tIncomplTriad;iZeroCount;sZero;sThousandDivider;iIncomplTriadLength] $hParam[^hash::create[$hParam]] $sNumber[$dNumber] $tPart[^sNumber.split[.][lh]] $sIntegerPart[^eval(^math:abs($tPart.0))[%.0f]] $sMantissa[$tPart.1] $iFracLength(^hParam.iFracLength.int(^sMantissa.length[])) $sThousandDivider[^if(def $hParam.sThousandDivider){$hParam.sThousandDivider}{ ^;}] ^if(^sIntegerPart.length[] > 4){ $iIncomplTriadLength(^sIntegerPart.length[] % 3) ^if($iIncomplTriadLength){ $tIncomplTriad[^sIntegerPart.match[^^(\d{$iIncomplTriadLength})(\d*)]] $sNumberOut[$tIncomplTriad.1] $sIntegerPart[$tIncomplTriad.2] $iTriadCount(1) }{ $sNumberOut[] $iTriadCount(0) } $sNumberOut[$sNumberOut^sIntegerPart.match[(\d{3})][g]{^if($iTriadCount){$sThousandDivider}$match.1^iTriadCount.inc(1)}] }{ $sNumberOut[$sIntegerPart] } $result[^if($dNumber < 0){-}$sNumberOut^if($iFracLength > 0){^if(def $hParam.sDecimalDivider){$hParam.sDecimalDivider}{,}^sMantissa.left($iFracLength)$iZeroCount($iFracLength-^if(def $sMantissa)(^sMantissa.length[])(0))^if($iZeroCount > 0){$sZero[0]^sZero.format[%0${iZeroCount}d]}}]Может, кто писал что для частных задач?