Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module InWords
- def in_words()
- written_num =
- ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty"]
- written_special_num = { 3 => "thir", 4 => "for", 5 => "fif", 11 => "eleven", 12 => "twelve", 20 => "twenty" }
- num_in_words = ""
- num = self.to_s.split(//)
- if self < 1000
- if (self < 20)
- return written_num[self]
- end
- if (self >= 100) && (self < 1000)
- num_in_words = written_num[num[0].to_i] + " hundred "
- end
- if (self < 100)
- num = [0, num[0], num[1]]
- end
- case num[1].to_i
- when 1
- return num_in_words + written_num[[num[1], num[2]].join.to_i].to_s
- when 2
- num_in_words += written_num[20].to_s #+ " " + written_num[num[2]]
- when 3..5
- num_in_words += written_special_num[num[1].to_i].to_s + "ty "# + written_num[num[2]]
- when 6..9
- num_in_words += written_num[num[1].to_i].to_s + "ty " #+ written_num[num[2]]
- else
- #num_in_words += written_num[num[2].to_i].to_s
- end
- return num_in_words + written_num[num[2].to_i].to_s
- else
- puts "Your number is not less than 1000"
- return num_in_words
- end
- end
- end
- class Fixnum
- include InWords
- end
Add Comment
Please, Sign In to add comment