如何在Perl中将数字转换为英文形式?

问题描述:

我需要一个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

使用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

这里是一个:

描述:这基本上将一 数为单词。它只能转换 数字小于或等于 数量的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

Number::Spell可以帮助你:

尝试this。来自作者...

您可以随意使用它并根据需要进行修改。

+0

也许downvote是为断开的链接。从最后删除“Blockquote”进行修复。 – 2010-10-27 03:27:31

+2

downvote?也许还因为它不是Perl – mirod 2010-10-27 10:05:13