
Untitled
By: a guest on
Sep 7th, 2012 | syntax:
None | size: 1.37 KB | hits: 6 | expires: Never
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