英文单词转换轨道的数字

有人知道在rails中将数字转换为英文数字的方法吗?

我找到了一些Ruby脚本来将数字转换成英文单词以获得相应的单词。

而不是在ruby中编写脚本,我觉得可以使用直接function。

例如。 1 – >一,二 – >二。

不,你必须自己写一个function。 最接近你想要的是number_to_human ,但是不能将1转换为One

以下是一些可能有用的url:

使用numbers_and_words gem, https://github.com/kslazarev/numbers_and_words

还有人性化的gem完全符合您的要求……

 require 'humanize' 23.humanize # => "twenty three" 0.42.humanize(decimals_as: :digits) # => "zero point four two" 

您也可以使用to_words gem。

这个Gem将整数转换为单词。

例如

 1.to_words # one , 100.to_words # one hundred , 101.to_words # one hundred and one 

它还转换负数。

这个怎么样? 用于将数字转换为印度系统中的单词,但可以轻松修改。

 def to_words(num) numbers_to_name = { 10000000 => "crore", 100000 => "lakh", 1000 => "thousand", 100 => "hundred", 90 => "ninety", 80 => "eighty", 70 => "seventy", 60 => "sixty", 50 => "fifty", 40 => "forty", 30 => "thirty", 20 => "twenty", 19=>"nineteen", 18=>"eighteen", 17=>"seventeen", 16=>"sixteen", 15=>"fifteen", 14=>"fourteen", 13=>"thirteen", 12=>"twelve", 11 => "eleven", 10 => "ten", 9 => "nine", 8 => "eight", 7 => "seven", 6 => "six", 5 => "five", 4 => "four", 3 => "three", 2 => "two", 1 => "one" } log_floors_to_ten_powers = { 0 => 1, 1 => 10, 2 => 100, 3 => 1000, 4 => 1000, 5 => 100000, 6 => 100000, 7 => 10000000 } num = num.to_i return '' if num <= 0 or num >= 100000000 log_floor = Math.log(num, 10).floor ten_power = log_floors_to_ten_powers[log_floor] if num <= 20 numbers_to_name[num] elsif log_floor == 1 rem = num % 10 [ numbers_to_name[num - rem], to_words(rem) ].join(' ') else [ to_words(num / ten_power), numbers_to_name[ten_power], to_words(num % ten_power) ].join(' ') end end