-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathenglish_number.rb
More file actions
68 lines (57 loc) · 1.52 KB
/
english_number.rb
File metadata and controls
68 lines (57 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
def englishNumber number
if number < 0
return 'Please enter a number that isn\'t negative'
end
if number == 0
return 'zero'
end
numString = ''
onesPlace = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
tensPlace = ['ten','twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety']
teenagers = ['eleven', 'twelve','thirteen', 'fourteen', 'fifteen','sixteen', 'seventeen', 'eighteen', 'nineteen']
left = number
# thousands
write = left/1000
left = left - write*1000
if write > 0
thousands = englishNumber write
numString = numString + thousands + ' thousand,'
if left > 0
numString = numString + ' '
end
end
write = left/100
left = left -write*100
puts 'left ' + left.to_s
if write > 0
hundreds = englishNumber write
numString = numString + hundreds + ' hundred and'
if left > 0
numString = numString + ' '
end
end
write = left/10
left = left - write*10
if write > 0
if ((write == 1) and (left > 0)) # Uh-oh...
# Since we can't write "tenty-two" instead of "twelve",
# we have to make a special exception for these.
numString = numString + teenagers[left-1]
left = 0
else
numString = numString + tensPlace[write-1]
end
if left > 0
numString = numString + '-'
end
end
write = left
left = 0
if write > 0
numString = numString+onesPlace[write-1]
end
numString
end
puts englishNumber(26)
puts englishNumber(826)
puts englishNumber(4826)