2010-10-26 93 views
3

我需要一個Perl腳本,它以數字作爲輸入示例222 ,它應該輸出爲。如何在Perl中將數字轉換爲英文形式?

+2

任何時候,如果您想在Perl中做某些事情,請從[搜索CPAN](http://search.cpan.org)開始,查找已經完成的代碼你需要的東西大多數情況下,CPAN已經找到了你的想法 – 2010-10-27 04:15:49

+1

並且不依賴任何在網絡上發現的舊代碼,它往往很糟糕 – mirod 2010-10-27 13:25:12

回答

15

使用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’,‘南’到‘無窮大’,」負無窮大「和」不是數字「
+0

鏈接已損壞。 – 2017-05-04 14:48:33

-1

這裏是一個:

描述:這基本上將一 數爲單詞。它只能轉換 數字小於或等於 數量的novemdecillion。它有一個 完整的輸入驗證過程。

+0

感謝你的鏈接..它做的工作,現在我是去學習它背後的邏輯:) – Vamsi 2010-10-26 07:37:15

+0

@克里希納:歡迎:) – Sarfraz 2010-10-26 07:38:32

+4

我的猜測是投票不是建議CPAN模塊,而是舊代碼質量很低:只是略讀它顯示了自由使用goto,瘋狂正則表達式來驗證輸入,沒有解開無論是什麼樣的功能論證...... OTOH如果想讓某人要求我們做好功課以取得不好的成績,那麼這應該是個訣竅。 – mirod 2010-10-26 16:11:38

-2

嘗試this。來自作者...

您可以隨意使用它並根據需要進行修改。

+0

也許downvote是爲斷開的鏈接。從最後刪除「Blockquote」進行修復。 – 2010-10-27 03:27:31

+2

downvote?也許還因爲它不是Perl – mirod 2010-10-27 10:05:13

相關問題