Как я могу преобразовать число в его английскую форму в Perl? - PullRequest
3 голосов
/ 26 октября 2010

Мне нужен Perl-скрипт, который принимает числа в качестве примера ввода 222 и он должен вывести как двести двадцать два .

Ответы [ 4 ]

15 голосов
/ 26 октября 2010

Использование Lingua :: EN :: Numbers - превратить «407» в «четыреста семь» и т. Д.

use Lingua::EN::Numbers qw(num2en num2en_ordinal);

    my $x = 234;
    my $y = 54;
    print "You have ", num2en($x), " things to do today!\n";
    print "You will stop caring after the ", num2en_ordinal($y), ".\n";

отпечатков:

You have two hundred and thirty-four things to do today!
You will stop caring after the fifty-fourth.

Если вы прочитаете документацию модуля, то обнаружите, что модуль также поддерживает следующие вещи, такие как,

  • Он может обрабатывать целые числа как "12" или "-3" и действительные числа как "53.19".
  • Он также понимает экспоненциальная запись - он поворачивается "4E9 "в" четыре раза по десять к девятому.
  • Превращает "INF", "-INF", "NaN" в "бесконечность", "отрицательная бесконечность" и "не число", соответственно.
9 голосов
/ 26 октября 2010

Число :: Заклинание может помочь вам:

use Number::Spell;
my $str = spell_number(222);
0 голосов
/ 26 октября 2010

Попробуйте это . От автора ...

Вы можете использовать это свободно и изменять его по своему усмотрению.

0 голосов
/ 26 октября 2010

Вот один из них:

Описание: это в основном преобразует число в слова. Это может только конвертировать числа меньше или равны Количество новоявленных Оно имеет завершить процесс проверки ввода.

...