Skip to content

Instantly share code, notes, and snippets.

@arn-e
Created October 13, 2012 00:08
Show Gist options
  • Save arn-e/3882457 to your computer and use it in GitHub Desktop.
Save arn-e/3882457 to your computer and use it in GitHub Desktop.
numbers_to_words
class NumbersToWords
@@words = { 1=> "one",
2=>"two",
3=>"three",
4=>"four",
5=>"five",
6=>"six",
7=>"seven",
8=>"eight",
9=>"nine",
10=>"ten",
11=>"eleven",
12=>"twelve",
13=>"thirteen",
14=>"fourteen",
15=>"fifteen",
16=>"sixteen",
17=>"seventeen",
18=>"eighteen",
19=>"nineteen",
20=>"twenty",
30=>"thirty",
40=>"fourty",
50=>"fifty",
60=>"sixty",
70=>"seventy",
80=>"eighty",
90=>"ninety",
100=>"hundred",
1000=>"thousand",
1000000=>"million"
}
def self.in_words(number, word = "")
return "one" if number == 1
highest_key = @@words.keys.select {|i| i <= number}.sort.reverse[0]
multiple = number / highest_key
remainder = number % highest_key
result = ""
result += self.in_words(multiple).to_s + " " if number > 99
result += @@words[highest_key].to_s
result += " " + self.in_words(remainder).to_s if remainder > 0
result
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment