Guest User

Untitled

a guest
Oct 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. module InWords
  2. def in_words()
  3. written_num =
  4. ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty"]
  5. written_special_num = { 3 => "thir", 4 => "for", 5 => "fif", 11 => "eleven", 12 => "twelve", 20 => "twenty" }
  6. num_in_words = ""
  7. num = self.to_s.split(//)
  8.  
  9. if self < 1000
  10.  
  11. if (self < 20)
  12. return written_num[self]
  13. end
  14.  
  15. if (self >= 100) && (self < 1000)
  16. num_in_words = written_num[num[0].to_i] + " hundred "
  17. end
  18.  
  19. if (self < 100)
  20. num = [0, num[0], num[1]]
  21. end
  22.  
  23. case num[1].to_i
  24. when 1
  25. return num_in_words + written_num[[num[1], num[2]].join.to_i].to_s
  26. when 2
  27. num_in_words += written_num[20].to_s #+ " " + written_num[num[2]]
  28. when 3..5
  29. num_in_words += written_special_num[num[1].to_i].to_s + "ty "# + written_num[num[2]]
  30. when 6..9
  31. num_in_words += written_num[num[1].to_i].to_s + "ty " #+ written_num[num[2]]
  32. else
  33. #num_in_words += written_num[num[2].to_i].to_s
  34. end
  35.  
  36. return num_in_words + written_num[num[2].to_i].to_s
  37.  
  38. else
  39. puts "Your number is not less than 1000"
  40. return num_in_words
  41. end
  42. end
  43. end
  44.  
  45. class Fixnum
  46. include InWords
  47. end
Add Comment
Please, Sign In to add comment