function number_to_string(_number) {
var _arr_numbers = new Array();
_arr_numbers[1] = new Array('', 'один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять', 'десять', 'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать');
_arr_numbers[2] = new Array('', '', 'двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто');
_arr_numbers[3] = new Array('', 'сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот');
function number_parser(_num, _desc) {
var _string = '';
var _num_hundred = '';
if (_num.length == 3) {
_num_hundred = _num.substr(0, 1);
_num = _num.substr(1, 3);
_string = _arr_numbers[3][_num_hundred] + ' ';
}
if (_num < 20) _string += _arr_numbers[1][parseFloat(_num)] + ' ';
else {
var _first_num = _num.substr(0, 1);
var _second_num = _num.substr(1, 2);
_string += _arr_numbers[2][_first_num] + ' ' + _arr_numbers[1][_second_num] + ' ';
}
switch (_desc){
case 0:
var _last_num = parseFloat(_num.substr(-1));
if (_last_num == 1) _string += 'рубль';
else if (_last_num > 1 && _last_num < 5) _string += 'рубля';
else _string += 'рублей';
break;
case 1:
var _last_num = parseFloat(_num.substr(-1));
if (_last_num == 1) _string += 'тысяча ';
else if (_last_num > 1 && _last_num < 5) _string += 'тысячи ';
else _string += 'тысяч ';
_string = _string.replace('один ', 'одна ');
_string = _string.replace('два ', 'две ');
break;
case 2:
var _last_num = parseFloat(_num.substr(-1));
if (_last_num == 1) _string += 'миллион ';
else if (_last_num > 1 && _last_num < 5) _string += 'миллиона ';
else _string += 'миллионов ';
break;
case 3:
var _last_num = parseFloat(_num.substr(-1));
if (_last_num == 1) _string += 'миллиард ';
else if (_last_num > 1 && _last_num < 5) _string += 'миллиарда ';
else _string += 'миллиардов ';
break;
}
_string = _string.replace(' ', ' ');
return _string;
}
function decimals_parser(_num) {
var _first_num = _num.substr(0, 1);
var _second_num = parseFloat(_num.substr(1, 2));
var _string = ' ' + _first_num + _second_num;
if (_second_num == 1) _string += ' копейка';
else if (_second_num > 1 && _second_num < 5) _string += ' копейки';
else _string += ' копеек';
return _string;
}
if (!_number || _number == 0) return false;
if (typeof _number !== 'number') {
_number = _number.replace(',', '.');
_number = parseFloat(_number);
if (isNaN(_number)) return false;
}
_number = _number.toFixed(2);
if(_number.indexOf('.') != -1) {
var _number_arr = _number.split('.');
var _number = _number_arr[0];
var _number_decimals = _number_arr[1];
}
var _number_length = _number.length;
var _string = '';
var _num_parser = '';
var _count = 0;
for (var _p = (_number_length - 1); _p >= 0; _p--) {
var _num_digit = _number.substr(_p, 1);
_num_parser = _num_digit + _num_parser;
if ((_num_parser.length == 3 || _p == 0) && !isNaN(parseFloat(_num_parser))) {
_string = number_parser(_num_parser, _count) + _string;
_num_parser = '';
_count++;
}
}
if (_number_decimals) _string += decimals_parser(_number_decimals);
return _string;
}
SUBSTITUTE(PROPER(INDEX({""\"стоz"\"двестиz"\"тристаz"\"четырестаz"\"пятьсотz"\"шестьсотz"\"семьсотz"\"восемьсотz"\"девятьсотz"};MID(TEXT(A1;"000000000000.00");1;1)+1)&INDEX(IF({"";1;"двадцатьz";"тридцатьz";"сорокz";"пятьдесятz";"шестьдесятz";"семьдесятz";"восемьдесятz";"девяностоz"}=1;{"десятьz"\"одиннадцатьz"\"двенадцатьz"\"тринадцатьz"\"четырнадцатьz"\"пятнадцатьz"\"шестнадцатьz"\"семнадцатьz"\"восемнадцатьz"\"девятнадцатьz"};{"";1;"двадцатьz";"тридцатьz";"сорокz";"пятьдесятz";"шестьдесятz";"семьдесятz";"восемьдесятz";"девяностоz"}&{""\"одинz"\"дваz"\"триz"\"четыреz"\"пятьz"\"шестьz"\"семьz"\"восемьz"\"девятьz"});MID(TEXT(A1;"000000000000.00");2;1)+1;MID(TEXT(A1;"000000000000.00");3;1)+1)&IF(-MID(TEXT(A1;"000000000000.00");1;3);"миллиард"&VLOOKUP(MID(TEXT(A1;"000000000000.00");3;1)*AND(MID(TEXT(A1;"000000000000.00");2;1)-1);{0\"овz";1\"z";2\"аz";5\"овz"};2);"")&INDEX({""\"стоz"\"двестиz"\"тристаz"\"четырестаz"\"пятьсотz"\"шестьсотz"\"семьсотz"\"восемьсотz"\"девятьсотz"};MID(TEXT(A1;"000000000000.00");4;1)+1)&INDEX(IF({"";1;"двадцатьz";"тридцатьz";"сорокz";"пятьдесятz";"шестьдесятz";"семьдесятz";"восемьдесятz";"девяностоz"}=1;{"десятьz"\"одиннадцатьz"\"двенадцатьz"\"тринадцатьz"\"четырнадцатьz"\"пятнадцатьz"\"шестнадцатьz"\"семнадцатьz"\"восемнадцатьz"\"девятнадцатьz"};{"";1;"двадцатьz";"тридцатьz";"сорокz";"пятьдесятz";"шестьдесятz";"семьдесятz";"восемьдесятz";"девяностоz"}&{""\"одинz"\"дваz"\"триz"\"четыреz"\"пятьz"\"шестьz"\"семьz"\"восемьz"\"девятьz"});MID(TEXT(A1;"000000000000.00");5;1)+1;MID(TEXT(A1;"000000000000.00");6;1)+1)&IF(-MID(TEXT(A1;"000000000000.00");4;3);"миллион"&VLOOKUP(MID(TEXT(A1;"000000000000.00");6;1)*AND(MID(TEXT(A1;"000000000000.00");5;1)-1);{0\"овz";1\"z";2\"аz";5\"овz"};2);"")&INDEX({""\"стоz"\"двестиz"\"тристаz"\"четырестаz"\"пятьсотz"\"шестьсотz"\"семьсотz"\"восемьсотz"\"девятьсотz"};MID(TEXT(A1;"000000000000.00");7;1)+1)&INDEX(IF({"";1;"двадцатьz";"тридцатьz";"сорокz";"пятьдесятz";"шестьдесятz";"семьдесятz";"восемьдесятz";"девяностоz"}=1;{"десятьz"\"одиннадцатьz"\"двенадцатьz"\"тринадцатьz"\"четырнадцатьz"\"пятнадцатьz"\"шестнадцатьz"\"семнадцатьz"\"восемнадцатьz"\"девятнадцатьz"};{"";1;"двадцатьz";"тридцатьz";"сорокz";"пятьдесятz";"шестьдесятz";"семьдесятz";"восемьдесятz";"девяностоz"}&{""\"однаz"\"двеz"\"триz"\"четыреz"\"пятьz"\"шестьz"\"семьz"\"восемьz"\"девятьz"});MID(TEXT(A1;"000000000000.00");8;1)+1;MID(TEXT(A1;"000000000000.00");9;1)+1)&IF(-MID(TEXT(A1;"000000000000.00");7;3);VLOOKUP(MID(TEXT(A1;"000000000000.00");9;1)*AND(MID(TEXT(A1;"000000000000.00");8;1)-1);{0\"тысячz";1\"тысячаz";2\"тысячиz";5\"тысячz"};2);"")&INDEX({""\"стоz"\"двестиz"\"тристаz"\"четырестаz"\"пятьсотz"\"шестьсотz"\"семьсотz"\"восемьсотz"\"девятьсотz"};MID(TEXT(A1;"000000000000.00");10;1)+1)&INDEX(IF({"";1;"двадцатьz";"тридцатьz";"сорокz";"пятьдесятz";"шестьдесятz";"семьдесятz";"восемьдесятz";"девяностоz"}=1;{"десятьz"\"одиннадцатьz"\"двенадцатьz"\"тринадцатьz"\"четырнадцатьz"\"пятнадцатьz"\"шестнадцатьz"\"семнадцатьz"\"восемнадцатьz"\"девятнадцатьz"};{"";1;"двадцатьz";"тридцатьz";"сорокz";"пятьдесятz";"шестьдесятz";"семьдесятz";"восемьдесятz";"девяностоz"}&{""\"одинz"\"дваz"\"триz"\"четыреz"\"пятьz"\"шестьz"\"семьz"\"восемьz"\"девятьz"});MID(TEXT(A1;"000000000000.00");11;1)+1;MID(TEXT(A1;"000000000000.00");12;1)+1));"z";" ")&IF(TRUNC(TEXT(A1;"000000000000.00"));"";"Ноль ")&
"грив"&VLOOKUP(MOD(MAX(MOD(MID(TEXT(A1;"000000000000.00");11;2)-11;100);9);10);{0\"на ";1\"ны ";4\"ен "};2)&RIGHT(TEXT(A1;"000000000000.00");2)&" копе"&VLOOKUP(MOD(MAX(MOD(RIGHT(TEXT(A1;"000000000000.00");2)-11;100);9);10);{0\"йка";1\"йки";4\"ек"};2)
"рубл"&VLOOKUP(MOD(MAX(MOD(MID(TEXT(A1;"000000000000.00");11;2)-11;100);9);10);{0\"ь ";1\"я ";4\"ей "};2)&RIGHT(TEXT(A1;"000000000000.00");2)&" копе"&VLOOKUP(MOD(MAX(MOD(RIGHT(TEXT(A1;"000000000000.00");2)-11;100);9);10);{0\"йка";1\"йки";4\"ек"};2)
=GOOGLETRANSLATE(код приведенный выше; "ru"; "uk")
=NUMBERTEXT(1) // one
=NUMBERTEXT(1;"ru") // один
=NUMBERTEXT(1;"uk") // один
=MONEYTEXT(1; "USD"; "uk") // Один долар США