-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmodFuncs.twin
272 lines (256 loc) · 35.7 KB
/
modFuncs.twin
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
Module modFuncs
Public Function num_multiply(ByVal number1 As Double, ByVal number2 As Double) As Double
num_multiply = number1 * number2
End Function
Public Function ConvertNumberToText(ByVal aNumber As String) As String
'handles numbers natively from zero all the way through (1000 milliatillion - 1), aka 10^3003
'larger numbers are accepted, but are named in the highest available unit
On Error Resume Next
If aNumber$ = "0" Then
ConvertNumberToText = "Zero"
Exit Function
End If
Dim aNames As Variant, aNames1 As Variant, aNames2 As Variant, aNames3 As Variant, aNames4 As Variant, aNames5 As Variant, aNames6 As Variant
Dim iNameCounter%, aNumberName$, aTempRet$, bNeedHyphen As Boolean, iTemp%, szTemp As String, szTR As String
aNumber = Replace(aNumber, ",", "") 'no commas in the input, k thx
' If Len(aNumber) > 483 Then
'
' szTemp = Left(aNumber, Len(aNumber) - 480)
' aNumber = Right(aNumber, 480)
' szTR = ConvertNumberToText(szTemp)
' End If
If Len(aNumber) > 3 Then
aNames1 = Array("", "Thousand", "Million", "Billion", "Trillion", "Quadrillion", "Quintillion", "Sextillion", "Septillion", "Octillion", "Nonillion", _
"Decillion", "Undecillion", "Duodecillion", "Tredecillion", "Quattuordecillion", "Quindecillion", "Sexdecillion", "Septendecillion", "Octodecillion", "Novemdecillion", _
"Vigintillion", "Unvigintillion", "Duovigintillion", "Trevigintillion", "Quattuorvigintillion", "Quinvigintillion", "Sexvigintillion", "Septenvigintillion", "Octovigintillion", "Novemvigintillion", _
"Trigintillion", "Untrigintillion", "Duotrigintillion", "Tretrigintillion", "Quattuortrigintillion", "Quintrigintillion", "Sextrigintillion", "Septtrigintillion", "Octotrigintillion", "Novemtrigintillion", _
"Quadragintillion", "Unquadragintillion", "Duoquadragintillion", "Trequadragintillion", "Quattuorquadragintillion", "Quinquadragintillion", "Sexquadragintillion", "Septquadragintillion", "Octoquadragintillion", "Novemquadragintillion", _
"Quinquagintillion", "Unquinquagintillion", "Duoquinquagintillion", "Trequinquagintillion", "Quattuorquinquagintillion", "Quinquinquagintillion", "Sexquinquagintillion", "Septquinquagintillion", "Octoquinquagintillion", "Novemquinquagintillion", _
"Sexagintillion", "Unsexagintillion", "Duosexagintillion", "Tresexagintillion", "Quattuorsexagintillion", "Quinsexagintillion", "Sexsexagintillion", "Septsexagintillion", "Octosexagintillion", "Novemsexagintillion", _
"Septuagintillion", "Unseptuagintillion", "Duoseptuagintillion", "Treseptuagintillion", "Quattuorseptuagintillion", "Quinseptuagintillion", "Sexseptuagintillion", "Septseptuagintillion", "Octoseptuagintillion", "Novemseptuagintillion", _
"Octogintillion", "Unoctogintillion", "Duooctogintillion", "Treoctogintillion", "Quattuoroctogintillion", "Quinoctogintillion", "Sexoctogintillion", "Septoctogintillion", "Octooctogintillion", "Novemoctogintillion", _
"Nonagintillion", "Unnonagintillion", "Duononagintillion", "Trenonagintillion", "Quattuornonagintillion", "Quinnonagintillion", "Sexnonagintillion", "Septnonagintillion", "Octononagintillion", "Novemnonagintillion", _
"Centillion", "Cenuntillion", "Cendotillion", "Centretillion", "Cenquattuortillion", "Cenquintillion", "Censextillion", "Censeptentillion", "Cenoctotillion", "Cennovemtillion", _
"Cendecillion", "Cenundecillion", "Cendodecillion", "Centredecillion", "Cenquattuordecillion", "Cenquindecillion", "Censexdecillion", "Censeptendecillion", "Cenoctodecillion", "Cennovemdecillion", _
"Cenvigintillion", "Cenunvigintillion", "Cendovigintillion", "Centrevigintillion", "Cenquattuorvigintillion", "Cenquinvigintillion", "Censexvigintillion", "Censeptenvigintillion", "Cenoctovigintillion", "Cennovemvigintillion", _
"Centrigintillion", "Cenuntrigintillion", "Cendotrigintillion", "Centretrigintillion", "Cenquattuortrigintillion", "Cenquintrigintillion", "Censextrigintillion", "Censeptentrigintillion", "Cenoctotrigintillion", "Cennovemtrigintillion", _
"Cenquadragintillion", "Cenunquadragintillion", "Cendoquadragintillion", "Centrequadragintillion", "Cenquattuorquadragintillion", "Cenquinquadragintillion", "Censexquadragintillion", "Censeptenquadragintillion", "Cenoctoquadragintillion", "Cennovemquadragintillion", _
"Cenquinquagintillion", "Cenunquinquagintillion", "Cendoquinquagintillion", "Centrequinquagintillion", "Cenquattuorquinquagintillion", "Cenquinquinquagintillion", "Censexquinquagintillion", "Censeptenquinquagintillion", "Cenoctoquinquagintillion", "Cennovemquinquagintillion", _
"Censexagintillion", "Cenunsexagintillion", "Cendosexagintillion", "Centresexagintillion", "Cenquattuorsexagintillion", "Cenquinsexagintillion", "Censexsexagintillion", "Censeptensexagintillion", "Cenoctosexagintillion", "Cennovemsexagintillion", _
"Censeptuagintillion", "Cenunseptuagintillion", "Cendoseptuagintillion", "Centreseptuagintillion", "Cenquattuorseptuagintillion", "Cenquinseptuagintillion", "Censexseptuagintillion", "Censeptenseptuagintillion", "Cenoctoseptuagintillion", "Cennovemseptuagintillion", _
"Cenoctogintillion", "Cenunoctogintillion", "Cendooctogintillion", "Centreoctogintillion", "Cenquattuoroctogintillion", "Cenquinoctogintillion", "Censexoctogintillion", "Censeptenoctogintillion", "Cenoctooctogintillion", "Cennovemoctogintillion", _
"Cennonagintillion", "Cenunnonagintillion", "Cendononagintillion", "Centrenonagintillion", "Cenquattuornonagintillion", "Cenquinnonagintillion", "Censexnonagintillion", "Censeptennonagintillion", "Cenoctononagintillion", "Cennovemnonagintillion", _
"Duocentillion", "Duocenuntillion", "Duocendotillion", "Duocentretillion", "Duocenquattuortillion", "Duocenquintillion", "Duocensextillion", "Duocenseptentillion", "Duocenoctotillion", "Duocennovemtillion", _
"Duocendecillion", "Duocenundecillion", "Duocendodecillion", "Duocentredecillion", "Duocenquattuordecillion", "Duocenquindecillion", "Duocensexdecillion", "Duocenseptendecillion", "Duocenoctodecillion", "Duocennovemdecillion", _
"Duocenvigintillion", "Duocenunvigintillion", "Duocendovigintillion", "Duocentrevigintillion", "Duocenquattuorvigintillion", "Duocenquinvigintillion", "Duocensexvigintillion", "Duocenseptenvigintillion", "Duocenoctovigintillion", "Duocennovemvigintillion", _
"Duocentrigintillion", "Duocenuntrigintillion", "Duocendotrigintillion", "Duocentretrigintillion", "Duocenquattuortrigintillion", "Duocenquintrigintillion", "Duocensextrigintillion", "Duocenseptentrigintillion", "Duocenoctotrigintillion", "Duocennovemtrigintillion")
aNames2 = Array("Duocenquadragintillion", "Duocenunquadragintillion", "Duocendoquadragintillion", "Duocentrequadragintillion", "Duocenquattuorquadragintillion", "Duocenquinquadragintillion", "Duocensexquadragintillion", "Duocenseptenquadragintillion", "Duocenoctoquadragintillion", "Duocennovemquadragintillion", _
"Duocenquinquagintillion", "Duocenunquinquagintillion", "Duocendoquinquagintillion", "Duocentrequinquagintillion", "Duocenquattuorquinquagintillion", "Duocenquinquinquagintillion", "Duocensexquinquagintillion", "Duocenseptenquinquagintillion", "Duocenoctoquinquagintillion", "Duocennovemquinquagintillion", _
"Duocensexagintillion", "Duocenunsexagintillion", "Duocendosexagintillion", "Duocentresexagintillion", "Duocenquattuorsexagintillion", "Duocenquinsexagintillion", "Duocensexsexagintillion", "Duocenseptensexagintillion", "Duocenoctosexagintillion", "Duocennovemsexagintillion", _
"Duocenseptuagintillion", "Duocenunseptuagintillion", "Duocendoseptuagintillion", "Duocentreseptuagintillion", "Duocenquattuorseptuagintillion", "Duocenquinseptuagintillion", "Duocensexseptuagintillion", "Duocenseptenseptuagintillion", "Duocenoctoseptuagintillion", "Duocennovemseptuagintillion", _
"Duocenoctogintillion", "Duocenunoctogintillion", "Duocendooctogintillion", "Duocentreoctogintillion", "Duocenquattuoroctogintillion", "Duocenquinoctogintillion", "Duocensexoctogintillion", "Duocenseptenoctogintillion", "Duocenoctooctogintillion", "Duocennovemoctogintillion", _
"Duocennonagintillion", "Duocenunnonagintillion", "Duocendononagintillion", "Duocentrenonagintillion", "Duocenquattuornonagintillion", "Duocenquinnonagintillion", "Duocensexnonagintillion", "Duocenseptennonagintillion", "Duocenoctononagintillion", "Duocennovemnonagintillion", _
"Trecentillion", "Trecenuntillion", "Trecendotillion", "Trecentretillion", "Trecenquattuortillion", "Trecenquintillion", "Trecensextillion", "Trecenseptentillion", "Trecenoctotillion", "Trecennovemtillion", _
"Trecendecillion", "Trecenundecillion", "Trecendodecillion", "Trecentredecillion", "Trecenquattuordecillion", "Trecenquindecillion", "Trecensexdecillion", "Trecenseptendecillion", "Trecenoctodecillion", "Trecennovemdecillion", _
"Trecenvigintillion", "Trecenunvigintillion", "Trecendovigintillion", "Trecentrevigintillion", "Trecenquattuorvigintillion", "Trecenquinvigintillion", "Trecensexvigintillion", "Trecenseptenvigintillion", "Trecenoctovigintillion", "Trecennovemvigintillion", _
"Trecentrigintillion", "Trecenuntrigintillion", "Trecendotrigintillion", "Trecentretrigintillion", "Trecenquattuortrigintillion", "Trecenquintrigintillion", "Trecensextrigintillion", "Trecenseptentrigintillion", "Trecenoctotrigintillion", "Trecennovemtrigintillion", _
"Trecenquadragintillion", "Trecenunquadragintillion", "Trecendoquadragintillion", "Trecentrequadragintillion", "Trecenquattuorquadragintillion", "Trecenquinquadragintillion", "Trecensexquadragintillion", "Trecenseptenquadragintillion", "Trecenoctoquadragintillion", "Trecennovemquadragintillion", _
"Trecenquinquagintillion", "Trecenunquinquagintillion", "Trecendoquinquagintillion", "Trecentrequinquagintillion", "Trecenquattuorquinquagintillion", "Trecenquinquinquagintillion", "Trecensexquinquagintillion", "Trecenseptenquinquagintillion", "Trecenoctoquinquagintillion", "Trecennovemquinquagintillion", _
"Trecensexagintillion", "Trecenunsexagintillion", "Trecendosexagintillion", "Trecentresexagintillion", "Trecenquattuorsexagintillion", "Trecenquinsexagintillion", "Trecensexsexagintillion", "Trecenseptensexagintillion", "Trecenoctosexagintillion", "Trecennovemsexagintillion", _
"Trecenseptuagintillion", "Trecenunseptuagintillion", "Trecendoseptuagintillion", "Trecentreseptuagintillion", "Trecenquattuorseptuagintillion", "Trecenquinseptuagintillion", "Trecensexseptuagintillion", "Trecenseptenseptuagintillion", "Trecenoctoseptuagintillion", "Trecennovemseptuagintillion", _
"Trecenoctogintillion", "Trecenunoctogintillion", "Trecendooctogintillion", "Trecentreoctogintillion", "Trecenquattuoroctogintillion", "Trecenquinoctogintillion", "Trecensexoctogintillion", "Trecenseptenoctogintillion", "Trecenoctooctogintillion", "Trecennovemoctogintillion", _
"Trecennonagintillion", "Trecenunnonagintillion", "Trecendononagintillion", "Trecentrenonagintillion", "Trecenquattuornonagintillion", "Trecenquinnonagintillion", "Trecensexnonagintillion", "Trecenseptennonagintillion", "Trecenoctononagintillion", "Trecennovemnonagintillion", _
"Quadringentillion", "Quadringenuntillion", "Quadringendotillion", "Quadringentretillion", "Quadringenquattuortillion", "Quadringenquintillion", "Quadringensextillion", "Quadringenseptentillion", "Quadringenoctotillion", "Quadringennovemtillion", _
"Quadringendecillion", "Quadringenundecillion", "Quadringendodecillion", "Quadringentredecillion", "Quadringenquattuordecillion", "Quadringenquindecillion", "Quadringensexdecillion", "Quadringenseptendecillion", "Quadringenoctodecillion", "Quadringennovemdecillion", _
"Quadringenvigintillion", "Quadringenunvigintillion", "Quadringendovigintillion", "Quadringentrevigintillion", "Quadringenquattuorvigintillion", "Quadringenquinvigintillion", "Quadringensexvigintillion", "Quadringenseptenvigintillion", "Quadringenoctovigintillion", "Quadringennovemvigintillion", _
"Quadringentrigintillion", "Quadringenuntrigintillion", "Quadringendotrigintillion", "Quadringentretrigintillion", "Quadringenquattuortrigintillion", "Quadringenquintrigintillion", "Quadringensextrigintillion", "Quadringenseptentrigintillion", "Quadringenoctotrigintillion", "Quadringennovemtrigintillion", _
"Quadringenquadragintillion", "Quadringenunquadragintillion", "Quadringendoquadragintillion", "Quadringentrequadragintillion", "Quadringenquattuorquadragintillion", "Quadringenquinquadragintillion", "Quadringensexquadragintillion", "Quadringenseptenquadragintillion", "Quadringenoctoquadragintillion", "Quadringennovemquadragintillion", _
"Quadringenquinquagintillion", "Quadringenunquinquagintillion", "Quadringendoquinquagintillion", "Quadringentrequinquagintillion", "Quadringenquattuorquinquagintillion", "Quadringenquinquinquagintillion", "Quadringensexquinquagintillion", "Quadringenseptenquinquagintillion", "Quadringenoctoquinquagintillion", "Quadringennovemquinquagintillion", _
"Quadringensexagintillion", "Quadringenunsexagintillion", "Quadringendosexagintillion", "Quadringentresexagintillion", "Quadringenquattuorsexagintillion", "Quadringenquinsexagintillion", "Quadringensexsexagintillion", "Quadringenseptensexagintillion", "Quadringenoctosexagintillion", "Quadringennovemsexagintillion")
aNames3 = Array("Quadringenseptuagintillion", "Quadringenunseptuagintillion", "Quadringendoseptuagintillion", "Quadringentreseptuagintillion", "Quadringenquattuorseptuagintillion", "Quadringenquinseptuagintillion", "Quadringensexseptuagintillion", "Quadringenseptenseptuagintillion", "Quadringenoctoseptuagintillion", "Quadringennovemseptuagintillion", _
"Quadringenoctogintillion", "Quadringenunoctogintillion", "Quadringendooctogintillion", "Quadringentreoctogintillion", "Quadringenquattuoroctogintillion", "Quadringenquinoctogintillion", "Quadringensexoctogintillion", "Quadringenseptenoctogintillion", "Quadringenoctooctogintillion", "Quadringennovemoctogintillion", _
"Quadringennonagintillion", "Quadringenunnonagintillion", "Quadringendononagintillion", "Quadringentrenonagintillion", "Quadringenquattuornonagintillion", "Quadringenquinnonagintillion", "Quadringensexnonagintillion", "Quadringenseptennonagintillion", "Quadringenoctononagintillion", "Quadringennovemnonagintillion", _
"Quingentillion", "Quingenuntillion", "Quingendotillion", "Quingentretillion", "Quingenquattuortillion", "Quingenquintillion", "Quingensextillion", "Quingenseptentillion", "Quingenoctotillion", "Quingennovemtillion", _
"Quingendecillion", "Quingenundecillion", "Quingendodecillion", "Quingentredecillion", "Quingenquattuordecillion", "Quingenquindecillion", "Quingensexdecillion", "Quingenseptendecillion", "Quingenoctodecillion", "Quingennovemdecillion", _
"Quingenvigintillion", "Quingenunvigintillion", "Quingendovigintillion", "Quingentrevigintillion", "Quingenquattuorvigintillion", "Quingenquinvigintillion", "Quingensexvigintillion", "Quingenseptenvigintillion", "Quingenoctovigintillion", "Quingennovemvigintillion", _
"Quingentrigintillion", "Quingenuntrigintillion", "Quingendotrigintillion", "Quingentretrigintillion", "Quingenquattuortrigintillion", "Quingenquintrigintillion", "Quingensextrigintillion", "Quingenseptentrigintillion", "Quingenoctotrigintillion", "Quingennovemtrigintillion", _
"Quingenquadragintillion", "Quingenunquadragintillion", "Quingendoquadragintillion", "Quingentrequadragintillion", "Quingenquattuorquadragintillion", "Quingenquinquadragintillion", "Quingensexquadragintillion", "Quingenseptenquadragintillion", "Quingenoctoquadragintillion", "Quingennovemquadragintillion", _
"Quingenquinquagintillion", "Quingenunquinquagintillion", "Quingendoquinquagintillion", "Quingentrequinquagintillion", "Quingenquattuorquinquagintillion", "Quingenquinquinquagintillion", "Quingensexquinquagintillion", "Quingenseptenquinquagintillion", "Quingenoctoquinquagintillion", "Quingennovemquinquagintillion", _
"Quingensexagintillion", "Quingenunsexagintillion", "Quingendosexagintillion", "Quingentresexagintillion", "Quingenquattuorsexagintillion", "Quingenquinsexagintillion", "Quingensexsexagintillion", "Quingenseptensexagintillion", "Quingenoctosexagintillion", "Quingennovemsexagintillion", _
"Quingenseptuagintillion", "Quingenunseptuagintillion", "Quingendoseptuagintillion", "Quingentreseptuagintillion", "Quingenquattuorseptuagintillion", "Quingenquinseptuagintillion", "Quingensexseptuagintillion", "Quingenseptenseptuagintillion", "Quingenoctoseptuagintillion", "Quingennovemseptuagintillion", _
"Quingenoctogintillion", "Quingenunoctogintillion", "Quingendooctogintillion", "Quingentreoctogintillion", "Quingenquattuoroctogintillion", "Quingenquinoctogintillion", "Quingensexoctogintillion", "Quingenseptenoctogintillion", "Quingenoctooctogintillion", "Quingennovemoctogintillion", _
"Quingennonagintillion", "Quingenunnonagintillion", "Quingendononagintillion", "Quingentrenonagintillion", "Quingenquattuornonagintillion", "Quingenquinnonagintillion", "Quingensexnonagintillion", "Quingenseptennonagintillion", "Quingenoctononagintillion", "Quingennovemnonagintillion", _
"Sescentillion", "Sescenuntillion", "Sescendotillion", "Sescentretillion", "Sescenquattuortillion", "Sescenquintillion", "Sescensextillion", "Sescenseptentillion", "Sescenoctotillion", "Sescennovemtillion", _
"Sescendecillion", "Sescenundecillion", "Sescendodecillion", "Sescentredecillion", "Sescenquattuordecillion", "Sescenquindecillion", "Sescensexdecillion", "Sescenseptendecillion", "Sescenoctodecillion", "Sescennovemdecillion", _
"Sescenvigintillion", "Sescenunvigintillion", "Sescendovigintillion", "Sescentrevigintillion", "Sescenquattuorvigintillion", "Sescenquinvigintillion", "Sescensexvigintillion", "Sescenseptenvigintillion", "Sescenoctovigintillion", "Sescennovemvigintillion", _
"Sescentrigintillion", "Sescenuntrigintillion", "Sescendotrigintillion", "Sescentretrigintillion", "Sescenquattuortrigintillion", "Sescenquintrigintillion", "Sescensextrigintillion", "Sescenseptentrigintillion", "Sescenoctotrigintillion", "Sescennovemtrigintillion", _
"Sescenquadragintillion", "Sescenunquadragintillion", "Sescendoquadragintillion", "Sescentrequadragintillion", "Sescenquattuorquadragintillion", "Sescenquinquadragintillion", "Sescensexquadragintillion", "Sescenseptenquadragintillion", "Sescenoctoquadragintillion", "Sescennovemquadragintillion", _
"Sescenquinquagintillion", "Sescenunquinquagintillion", "Sescendoquinquagintillion", "Sescentrequinquagintillion", "Sescenquattuorquinquagintillion", "Sescenquinquinquagintillion", "Sescensexquinquagintillion", "Sescenseptenquinquagintillion", "Sescenoctoquinquagintillion", "Sescennovemquinquagintillion", _
"Sescensexagintillion", "Sescenunsexagintillion", "Sescendosexagintillion", "Sescentresexagintillion", "Sescenquattuorsexagintillion", "Sescenquinsexagintillion", "Sescensexsexagintillion", "Sescenseptensexagintillion", "Sescenoctosexagintillion", "Sescennovemsexagintillion", _
"Sescenseptuagintillion", "Sescenunseptuagintillion", "Sescendoseptuagintillion", "Sescentreseptuagintillion", "Sescenquattuorseptuagintillion", "Sescenquinseptuagintillion", "Sescensexseptuagintillion", "Sescenseptenseptuagintillion", "Sescenoctoseptuagintillion", "Sescennovemseptuagintillion", _
"Sescenoctogintillion", "Sescenunoctogintillion", "Sescendooctogintillion", "Sescentreoctogintillion", "Sescenquattuoroctogintillion", "Sescenquinoctogintillion", "Sescensexoctogintillion", "Sescenseptenoctogintillion", "Sescenoctooctogintillion", "Sescennovemoctogintillion", _
"Sescennonagintillion", "Sescenunnonagintillion", "Sescendononagintillion", "Sescentrenonagintillion", "Sescenquattuornonagintillion", "Sescenquinnonagintillion", "Sescensexnonagintillion", "Sescenseptennonagintillion", "Sescenoctononagintillion", "Sescennovemnonagintillion", _
"Septingentillion", "Septingenuntillion", "Septingendotillion", "Septingentretillion", "Septingenquattuortillion", "Septingenquintillion", "Septingensextillion", "Septingenseptentillion", "Septingenoctotillion", "Septingennovemtillion", _
"Septingendecillion", "Septingenundecillion", "Septingendodecillion", "Septingentredecillion", "Septingenquattuordecillion", "Septingenquindecillion", "Septingensexdecillion", "Septingenseptendecillion", "Septingenoctodecillion", "Septingennovemdecillion")
aNames4 = Array("Septingenvigintillion", "Septingenunvigintillion", "Septingendovigintillion", "Septingentrevigintillion", "Septingenquattuorvigintillion", "Septingenquinvigintillion", "Septingensexvigintillion", "Septingenseptenvigintillion", "Septingenoctovigintillion", "Septingennovemvigintillion", _
"Septingentrigintillion", "Septingenuntrigintillion", "Septingendotrigintillion", "Septingentretrigintillion", "Septingenquattuortrigintillion", "Septingenquintrigintillion", "Septingensextrigintillion", "Septingenseptentrigintillion", "Septingenoctotrigintillion", "Septingennovemtrigintillion", _
"Septingenquadragintillion", "Septingenunquadragintillion", "Septingendoquadragintillion", "Septingentrequadragintillion", "Septingenquattuorquadragintillion", "Septingenquinquadragintillion", "Septingensexquadragintillion", "Septingenseptenquadragintillion", "Septingenoctoquadragintillion", "Septingennovemquadragintillion", _
"Septingenquinquagintillion", "Septingenunquinquagintillion", "Septingendoquinquagintillion", "Septingentrequinquagintillion", "Septingenquattuorquinquagintillion", "Septingenquinquinquagintillion", "Septingensexquinquagintillion", "Septingenseptenquinquagintillion", "Septingenoctoquinquagintillion", "Septingennovemquinquagintillion", _
"Septingensexagintillion", "Septingenunsexagintillion", "Septingendosexagintillion", "Septingentresexagintillion", "Septingenquattuorsexagintillion", "Septingenquinsexagintillion", "Septingensexsexagintillion", "Septingenseptensexagintillion", "Septingenoctosexagintillion", "Septingennovemsexagintillion", _
"Septingenseptuagintillion", "Septingenunseptuagintillion", "Septingendoseptuagintillion", "Septingentreseptuagintillion", "Septingenquattuorseptuagintillion", "Septingenquinseptuagintillion", "Septingensexseptuagintillion", "Septingenseptenseptuagintillion", "Septingenoctoseptuagintillion", "Septingennovemseptuagintillion", _
"Septingenoctogintillion", "Septingenunoctogintillion", "Septingendooctogintillion", "Septingentreoctogintillion", "Septingenquattuoroctogintillion", "Septingenquinoctogintillion", "Septingensexoctogintillion", "Septingenseptenoctogintillion", "Septingenoctooctogintillion", "Septingennovemoctogintillion", _
"Septingennonagintillion", "Septingenunnonagintillion", "Septingendononagintillion", "Septingentrenonagintillion", "Septingenquattuornonagintillion", "Septingenquinnonagintillion", "Septingensexnonagintillion", "Septingenseptennonagintillion", "Septingenoctononagintillion", "Septingennovemnonagintillion", _
"Octingentillion", "Octingenuntillion", "Octingendotillion", "Octingentretillion", "Octingenquattuortillion", "Octingenquintillion", "Octingensextillion", "Octingenseptentillion", "Octingenoctotillion", "Octingennovemtillion", _
"Octingendecillion", "Octingenundecillion", "Octingendodecillion", "Octingentredecillion", "Octingenquattuordecillion", "Octingenquindecillion", "Octingensexdecillion", "Octingenseptendecillion", "Octingenoctodecillion", "Octingennovemdecillion", _
"Octingenvigintillion", "Octingenunvigintillion", "Octingendovigintillion", "Octingentrevigintillion", "Octingenquattuorvigintillion", "Octingenquinvigintillion", "Octingensexvigintillion", "Octingenseptenvigintillion", "Octingenoctovigintillion", "Octingennovemvigintillion", _
"Octingentrigintillion", "Octingenuntrigintillion", "Octingendotrigintillion", "Octingentretrigintillion", "Octingenquattuortrigintillion", "Octingenquintrigintillion", "Octingensextrigintillion", "Octingenseptentrigintillion", "Octingenoctotrigintillion", "Octingennovemtrigintillion", _
"Octingenquadragintillion", "Octingenunquadragintillion", "Octingendoquadragintillion", "Octingentrequadragintillion", "Octingenquattuorquadragintillion", "Octingenquinquadragintillion", "Octingensexquadragintillion", "Octingenseptenquadragintillion", "Octingenoctoquadragintillion", "Octingennovemquadragintillion", _
"Octingenquinquagintillion", "Octingenunquinquagintillion", "Octingendoquinquagintillion", "Octingentrequinquagintillion", "Octingenquattuorquinquagintillion", "Octingenquinquinquagintillion", "Octingensexquinquagintillion", "Octingenseptenquinquagintillion", "Octingenoctoquinquagintillion", "Octingennovemquinquagintillion", _
"Octingensexagintillion", "Octingenunsexagintillion", "Octingendosexagintillion", "Octingentresexagintillion", "Octingenquattuorsexagintillion", "Octingenquinsexagintillion", "Octingensexsexagintillion", "Octingenseptensexagintillion", "Octingenoctosexagintillion", "Octingennovemsexagintillion", _
"Octingenseptuagintillion", "Octingenunseptuagintillion", "Octingendoseptuagintillion", "Octingentreseptuagintillion", "Octingenquattuorseptuagintillion", "Octingenquinseptuagintillion", "Octingensexseptuagintillion", "Octingenseptenseptuagintillion", "Octingenoctoseptuagintillion", "Octingennovemseptuagintillion", _
"Octingenoctogintillion", "Octingenunoctogintillion", "Octingendooctogintillion", "Octingentreoctogintillion", "Octingenquattuoroctogintillion", "Octingenquinoctogintillion", "Octingensexoctogintillion", "Octingenseptenoctogintillion", "Octingenoctooctogintillion", "Octingennovemoctogintillion", _
"Octingennonagintillion", "Octingenunnonagintillion", "Octingendononagintillion", "Octingentrenonagintillion", "Octingenquattuornonagintillion", "Octingenquinnonagintillion", "Octingensexnonagintillion", "Octingenseptennonagintillion", "Octingenoctononagintillion", "Octingennovemnonagintillion", _
"Nongentillion", "Nongenuntillion", "Nongendotillion", "Nongentretillion", "Nongenquattuortillion", "Nongenquintillion", "Nongensextillion", "Nongenseptentillion", "Nongenoctotillion", "Nongennovemtillion", _
"Nongendecillion", "Nongenundecillion", "Nongendodecillion", "Nongentredecillion", "Nongenquattuordecillion", "Nongenquindecillion", "Nongensexdecillion", "Nongenseptendecillion", "Nongenoctodecillion", "Nongennovemdecillion", _
"Nongenvigintillion", "Nongenunvigintillion", "Nongendovigintillion", "Nongentrevigintillion", "Nongenquattuorvigintillion", "Nongenquinvigintillion", "Nongensexvigintillion", "Nongenseptenvigintillion", "Nongenoctovigintillion", "Nongennovemvigintillion", _
"Nongentrigintillion", "Nongenuntrigintillion", "Nongendotrigintillion", "Nongentretrigintillion", "Nongenquattuortrigintillion", "Nongenquintrigintillion", "Nongensextrigintillion", "Nongenseptentrigintillion", "Nongenoctotrigintillion", "Nongennovemtrigintillion", _
"Nongenquadragintillion", "Nongenunquadragintillion", "Nongendoquadragintillion", "Nongentrequadragintillion", "Nongenquattuorquadragintillion", "Nongenquinquadragintillion", "Nongensexquadragintillion", "Nongenseptenquadragintillion", "Nongenoctoquadragintillion", "Nongennovemquadragintillion", _
"Nongenquinquagintillion", "Nongenunquinquagintillion", "Nongendoquinquagintillion", "Nongentrequinquagintillion", "Nongenquattuorquinquagintillion", "Nongenquinquinquagintillion", "Nongensexquinquagintillion", "Nongenseptenquinquagintillion", "Nongenoctoquinquagintillion", "Nongennovemquinquagintillion")
aNames5 = Array("Nongensexagintillion", "Nongenunsexagintillion", "Nongendosexagintillion", "Nongentresexagintillion", "Nongenquattuorsexagintillion", "Nongenquinsexagintillion", "Nongensexsexagintillion", "Nongenseptensexagintillion", "Nongenoctosexagintillion", "Nongennovemsexagintillion", _
"Nongenseptuagintillion", "Nongenunseptuagintillion", "Nongendoseptuagintillion", "Nongentreseptuagintillion", "Nongenquattuorseptuagintillion", "Nongenquinseptuagintillion", "Nongensexseptuagintillion", "Nongenseptenseptuagintillion", "Nongenoctoseptuagintillion", "Nongennovemseptuagintillion", _
"Nongenoctogintillion", "Nongenunoctogintillion", "Nongendooctogintillion", "Nongentreoctogintillion", "Nongenquattuoroctogintillion", "Nongenquinoctogintillion", "Nongensexoctogintillion", "Nongenseptenoctogintillion", "Nongenoctooctogintillion", "Nongennovemoctogintillion", _
"Nongennonagintillion", "Nongenunnonagintillion", "Nongendononagintillion", "Nongentrenonagintillion", "Nongenquattuornonagintillion", "Nongenquinnonagintillion", "Nongensexnonagintillion", "Nongenseptennonagintillion", "Nongenoctononagintillion", "Nongennovemnonagintillion", _
"Milliatillion")
ReDim aNames(UBound(aNames1) + UBound(aNames2) + UBound(aNames3) + UBound(aNames4) + UBound(aNames5))
Dim qt As Long, kk As Long
For qt = 0 To UBound(aNames1)
aNames(kk) = aNames1(qt)
kk = kk + 1
Next
For qt = 0 To UBound(aNames2)
aNames(kk) = aNames2(qt)
kk = kk + 1
Next
For qt = 0 To UBound(aNames3)
aNames(kk) = aNames3(qt)
kk = kk + 1
Next
For qt = 0 To UBound(aNames4)
aNames(kk) = aNames4(qt)
kk = kk + 1
Next
For qt = 0 To UBound(aNames5)
aNames(kk) = aNames5(qt)
kk = kk + 1
Next
'The question is how high we should really go...
aNumber = String$(3 - Len(aNumber) Mod 3, "0") & aNumber
Do
aTempRet = ConvertNumberToText(Right$(aNumber, 3))
If Len(aTempRet) > 0 Then
If iNameCounter > 0 Then
aNumberName = aTempRet & " " & aNames(iNameCounter) & ", " & aNumberName
Else
aNumberName = aTempRet
End If
End If
aNumber = Left$(aNumber, Len(aNumber) - 3)
iNameCounter = iNameCounter + 1
Loop Until Len(aNumber) = 0
Else
aNumber = Trim$(Val(aNumber))
If Len(aNumber) = 3 Then
aNumberName = Choose(Val(Left$(aNumber, 1)), "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine") & " Hundred "
aNumber = Trim$(Val(Right$(aNumber, 2)))
End If
If Len(aNumber) = 2 Then
iTemp = Val(Left$(aNumber, 1))
If iTemp > 1 Then
aNumberName = aNumberName & Choose(iTemp, "", "Twenty", "Thrirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninty")
aNumber = Trim$(Val(Right$(aNumber, 1)))
bNeedHyphen = True
Else
aNumberName = aNumberName & Choose(Val(Right$(aNumber, 1)) + 1, "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
aNumber = ""
End If
End If
If Len(aNumber) = 1 Then
iTemp = Val(Left$(aNumber, 1))
If iTemp > 0 Then
If bNeedHyphen Then aNumberName = aNumberName & "-"
aNumberName = aNumberName & Choose(iTemp, "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine")
End If
End If
End If
If szTR <> "" Then
'szTR = Left(szTR, Len(szTR) - 1) 'trim last comma
aNumberName = szTR & " Centillion, " & aNumberName
End If
szTR = RTrim$(aNumberName)
If Right(szTR, 1) = "," Then
szTR = Left(szTR, Len(szTR) - 1)
End If
ConvertNumberToText = szTR
End Function
Public Function num_getroman(nArabicValue As Long) As String
Dim nThousands As Long
Dim nFiveHundreds As Long
Dim nHundreds As Long
Dim nFifties As Long
Dim nTens As Long
Dim nFives As Long
Dim nOnes As Long
Dim tmp As String
'take the value passed and split it out
'to values representing the number of
'ones, tens, hundreds, etc
nOnes = nArabicValue
nThousands = nOnes \ 1000
nOnes = nOnes - nThousands * 1000
nFiveHundreds = nOnes \ 500
nOnes = nOnes - nFiveHundreds * 500
nHundreds = nOnes \ 100
nOnes = nOnes - nHundreds * 100
nFifties = nOnes \ 50
nOnes = nOnes - nFifties * 50
nTens = nOnes \ 10
nOnes = nOnes - nTens * 10
nFives = nOnes \ 5
nOnes = nOnes - nFives * 5
'using VB's String function, create
'a series of strings representing
'the number of each respective denomination
tmp = String(nThousands, "M")
'handle those cases where the denominator
'value is on either side of a roman numeral
If nHundreds = 4 Then
If nFiveHundreds = 1 Then
tmp = tmp & "CM"
Else
tmp = tmp & "CD"
End If
Else
'not a 4, so create the string
tmp = tmp & String(nFiveHundreds, "D") & String(nHundreds, "C")
End If
If nTens = 4 Then
If nFifties = 1 Then
tmp = tmp & "XC"
Else
tmp = tmp & "XL"
End If
Else
tmp = tmp & String(nFifties, "L") & String(nTens, "X")
End If
If nOnes = 4 Then
If nFives = 1 Then
tmp = tmp & "IX"
Else
tmp = tmp & "IV"
End If
Else
tmp = tmp & String(nFives, "V") & String(nOnes, "I")
End If
num_getroman = tmp
End Function
End Module