Нужен был перевод чисел в словесную форму. Попробовал разобраться с функцией AmountToStr в scr_ConvertUtils. Но понял, что проще заново написать, чем переделать ее из обработки денежных значений.
Врать не буду взял отсюда
http://algolist.manual.ru/maths/misc/sumwrite.php
function AmountToStrEx(Amount, Sex) {
if (Sex == undefined) {
var Sex = 0;
}
var Result = '';
var Div = 1;
var Str = '';
var i = 0;
var Thousands = [ // род, один, несколько (2-4), много (>4)
[0,'' ,'' ,'' ],
[1,'тысяча ' ,'тысячи ' ,'тысяч ' ],
[0,'миллион ' ,'миллиона ' ,'миллионов ' ],
[0,'миллиард ' ,'миллиарда ' ,'миллиардов ' ],
[0,'триллион ' ,'триллиона ' ,'триллионов ' ],
[0,'квадриллион ','квадриллиона ','квадриллионов '],
[0,'квинтиллион ','квинтиллиона ','квинтиллионов '] // 6
]
var ToHundreds = [ // до 10[по родам], 10-19, 10-90, 100-900
[['' ,'' ,''], 'десять ' ,'' ,'' ],
[['один ' ,'одна ' ,'одно '], 'одиннадцать ' ,'десять ' ,'сто ' ],
[['два ' ,'две ' ,'два '], 'двенадцать ' ,'двадцать ' ,'двести ' ],
[['три ' ,'три ' ,'три '], 'тринадцать ' ,'тридцать ' ,'триста ' ],
[['четыре ','четыре ','четыре '],'четырнадцать ','сорок ' ,'четыреста '],
[['пять ' ,'пять ' ,'пять '], 'пятнадцать ' ,'пятьдесят ' ,'пятьсот ' ],
[['шесть ' ,'шесть ' ,'шесть '], 'шестнадцать ' ,'шестьдесят ' ,'шестьсот ' ],
[['семь ' ,'семь ' ,'семь '], 'семнадцать ' ,'семьдесят ' ,'семьсот ' ],
[['восемь ','восемь ','восемь '],'восемнадцать ','восемьдесят ','восемьсот '],
[['девять ','девять ','девять '],'девятнадцать ','девяносто ' ,'девятьсот '] // 10
]
if (Amount == 0) return 'ноль ';
if (Amount 0) {
Result = 'минус ';
Amount = -1 * Amount;
}
for(i = 0; Div = Amount; i++) Div *= 1000;
for(i = i - 1; i >= 0; i--){
Div = Math.pow(10, i*3);
Many = Math.floor(Amount / Div);
Amount %= Div;
Str='';
if (Many == 0){
if (i > 0) continue;
Str += Thousands[i][1];
} else {
if(Many>=100){
Str += ToHundreds[Math.floor(Many/100)][3];
Many %= 100;
}
if(Many>=20){
Str += ToHundreds[Math.floor(Many/10)][2];
Many %= 10;
}
if(Many>=10) Str += ToHundreds[Many-10][1];
else
if(Many>=1) {
if (i == 0) {
Str += ToHundreds[Many][0][Sex];
} else Str += ToHundreds[Many][0][Thousands[i][0]];
}
switch(Many){
case 1: Str += Thousands[i][1]; break;
case 2: case 3:
case 4: Str += Thousands[i][2]; break;
default: Str += Thousands[i][3]; break;
};
}
Result += Str;
}
return Result;
}