Code: Alles auswählen
Function NumberToText(ByVal n) As String
REM by Andrew D. Pitonyak
Dim sBigWordsUSA()
Dim sBigWordsUK()
Dim sBigWordsDE()
REM 10^100 is a googol (10 duotrigintillion)
REM This goes to 10^303, how big do you really want me to go?
sBigWordsUSA = Array( "", _
"thousand", "million", "billion", "trillion", "quadrillion", _
"quintillion", "sexillion", "septillion", _
"octillion", "nonillion", "decillion", "undecillion", "duodecillion", _
"tredecillion","quattuordecillion", "quindecillion", "sexdecillion", _
"septdecillion", "octodecillion", "novemdecillion", "vigintillion", _
"unvigintillion", "duovigintillion", "trevigintillion", _
"quattuorvigintillion", "quinvigintillion", "sexvigintillion", _
"septvigintillion", "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" _
)
sBigWordsUK() = Array( "", "thousand", _
"milliard", "billion", "billiard", "trillion", "trilliard", _
"quadrillion", "quadrilliard", "quintillion", "quintilliard", _
"sextillion", "sextilliard", "septillion", "septilliard", _
"octillion", "octilliard", "nonillion", "nonilliard", "decillion", _
"decilliard", "undecillion", "undecilliard", "dodecillion", _
"dodecilliard", "tredecillion", "tredecilliard", "quattuordecillion", _
"quattuordecilliard", "quindecillion", "quindecilliard", "sexdecillion", _
"sexdecilliard", "septendecillion", "septendecilliard", "octodecillion", _
"octodecilliard", "novemdecillion", "novemdecilliard", "vigintillion", _
"vigintilliard", "unvigintillion", "unvigintilliard", "duovigintillion", _
"duovigintilliard", "trevigintillion", "trevigintilliard", _
"quattuorvigintillion", "quattuorvigintilliard", "quinvigintillion", _
"quinvigintilliard", "sexvigintillion", "sexvigintilliard", _
"septenvigintillion", "septenvigintilliard", "octovigintillion", _
"octovigintilliard", "novemvigintillion", "novemvigintilliard", _
"trigintillion", "trigintilliard", "untrigintillion", _
"untrigintilliard", "duotrigintillion", "duotrigintilliard", _
"tretrigintillion", "tretrigintilliard", "quattuortrigintillion", _
"quattuortrigintilliard", "quintrigintillion", "quintrigintilliard", _
"sextrigintillion", "sextrigintilliard", "septentrigintillion", _
"septentrigintilliard", "octotrigintillion", "octotrigintilliard", _
"novemtrigintillion", "novemtrigintilliard", "quadragintillion", _
"quadragintilliard", "unquadragintillion", "unquadragintilliard", _
"duoquadragintillion", "duoquadragintilliard", "trequadragintillion", _
"trequadragintilliard", "quattuorquadragintillion", _
"quattuorquadragintilliard", "quinquadragintillion", _
"quinquadragintilliard", "sexquadragintillion", "sexquadragintilliard", _
"septenquadragintillion", "septenquadragintilliard", _
"octoquadragintillion", "octoquadragintilliard", _
"novemquadragintillion", "novemquadragintilliard", "quinquagintillion", _
"quinquagintilliard" _
)
sBigWordsDE() = Array( "", "Tausend","Million", _
"Milliarde", "Billion", "Billiarde", "Trillion", "Trilliarde", _
"Quadrillion", "Quadrilliarde", "Quintillion", "Quintilliarde", _
"Sextillion", "Sextilliarde", "Septillion", "Septilliarde", _
"Oktillion", "Oktilliarde", "Nonillion", "Nonilliarde", _
"Dezillion", "Dezilliarde", "Undezillion", "Undezilliarde", _
"Duodezillion", "Doudezilliarde", "Tredezillion", _
"Tredizilliarde", "Quattuordezillion", "Quattuordezilliarde", _
"Quindezillion", "Quindezilliarde", "Sexdezillion", _
"Sexdezilliarde", "Septendezillion", "Septendezilliarde", _
"Oktodezillion", "Oktodezilliarde", "Novemdezillion", _
"Novemdezilliarde", "Vigintillion", "Vigintilliarde", _
"Unvigintillion", "Unvigintilliarde", "Duovigintillion", _
"Duovigintilliarde", "Trevigintillion", "Trevigintilliarde", _
"Quattuorvigintillion", "Quattuorvigintilliarde", "Quinvigintillion", _
"Quinvigintilliarde", "Sexvigintillion", "Sexvigintilliarde", _
"Septenvigintillion", "Septenvigintilliarde", "Oktovigintillion", _
"Oktovigintilliarde", "Novemvigintillion", "Novemvigintilliarde", _
"Trigintillion", "Trigintilliarde", "Untrigintillion", _
"Untrigintilliarde", "Duotrigintillion", "Duotrigintilliarde", _
"Tretrigintillion", "Tretrigintilliarde", "Quattuortrigintillion", _
"Quattuortrigintilliarde", "Quintrigintillion", "Quintrigintilliarde", _
"Sextrigintillion", "Sextrigintilliarde", "Septentrigintillion", _
"Septentrigintilliarde", "Oktotrigintillion", "Oktotrigintilliarde", _
"Novemtrigintillion", "Novemtrigintilliarde", "Quadragintillion", _
"Quadragintilliarde", "Unquadragintillion", "Unquadragintilliarde", _
"Duoquadragintillion", "Duoquadragintilliarde", "Trequadragintillion", _
"Trequadragintilliarde", "Quattuorquadragintillion", _
"Quattuorquadragintilliarde", "Quinquadragintillion", _
"Quinquadragintilliarde", "Sexquadragintillion", _
"Sexquadragintilliarde", "Septenquadragintillion", _
"Septenquadragintilliarde", "Oktoquadragintillion", _
"Oktoquadragintilliarde", "Novemquadragintillion", _
"Novemquadragintilliarde", "Quinquagintillion", "Quinquagintilliarde" _
)
Dim i As Integer
Dim iInt As Integer
Dim s As String
Dim dInt As Double
REM Chop off the decimal portion.
dInt = Fix(n)
If (dInt < 1000) Then
NumberToText = SmallIntToText(CInt(dInt))
Exit Function
End If
REM i is the index into the sBigWords array
i = 0
s = ""
Do While dInt > 0
iInt = CInt(dInt - Fix(dInt / 1000) * 1000)
If iInt <> 0 Then
If Len(s) > 0 Then s = " " & s
s = SmallIntToText(iInt) & " " & sBigWordsDE(i) & s
End If
i = i + 1
dInt = Fix(dInt / 1000)
'Print "s = " & s & " dInt = " & dInt
Loop
NumberToText = s
End Function
Function SmallIntToText(ByVal n As Integer) As String
REM by Andrew D. Pitonyak
Dim sOneWords()
Dim sTenWords()
Dim s As String
If n > 999 Then
Print "Warning, n = " & n & " which is too large!"
Exit Function
End If
sOneWords() = Array ("", _
"eins", "zwei", "drei", "vier", "fünf", _
"sechs", "sieben", "acht", "neun", "zehn", _
"elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", _
"sechszehn", "siebzehn", "achtzehn", "neunzehn", "zwanzig")
sTenWords() = Array( "", "zehn", "zwanzig", "dreisig", "vierzig", _
"fünfzig", "sechzig", "siebzig", "achtzig", "neunzig")
s = ""
If n > 99 Then
hhh = sOneWords(Fix(n / 100)) & " hundert"
if Fix(n /100) = 1 then
hhh = "einhundert"
end if
n = n MOD 100
If n = 0 Then
SmallIntToText = hhh
Exit Function
End If
hhh = hhh & " "
End If
If (n <= 20) Then
SmallIntToText = hhh & sOneWords(n)
exit function
else
zz = sTenWords(Fix(n / 10))
n = n MOD 10
If n = 0 Then
SmallIntToText = hhh & zz
Exit Function
End If
zz = zz & " "
End If
SmallIntToText = hhh & sOneWords(n) & "und"& zz
End Function