Я однажды написал инструмент под названием vpi2english.Это часть моего vpi toolbox , написанного на языке Matlab.Но на самом деле код довольно прост и может быть преобразован в другой язык, если вы выберете.По сути, он берет (десятичную) строку цифр, разбивает ее на куски по три цифры за раз и записывает их каждый в словах.
>> vpi2english(vpi('2331546567543686356564321'))
ans =
two septillion, three hundred thirty one sextillion,
five hundred forty six quintillion, five hundred sixty seven quadrillion,
five hundred forty three trillion, six hundred eighty six billion,
three hundred fifty six million, five hundred sixty four thousand,
three hundred twenty one
В настоящее время он работает с числами, которые на 1 меньше 1e306, который настолько велик, насколько я мог найти имена для таких номеров в Интернете.
>> vpi2english(999999*vpi(10)^300)
ans =
nine hundred ninety nine centillion, nine hundred ninety nine novemnonagintillion