Option Explicit
Dim Importo
Function converti_importo_In_lettere(ByVal importo, ByVal aggiungi_decimali)
Dim nomi_numeri(100)
Dim i
Dim j
Dim inLettere
Dim importoOriginale
inLettere = ""
importoOriginale=importo
nomi_numeri(0) = "zero"
nomi_numeri(1) = "uno"
nomi_numeri(2) = "due"
nomi_numeri(3) = "tre"
nomi_numeri(4) = "quattro"
nomi_numeri(5) = "cinque"
nomi_numeri(6) = "sei"
nomi_numeri(7) = "sette"
nomi_numeri(8) = "otto"
nomi_numeri(9) = "nove"
nomi_numeri(10) = "dieci"
nomi_numeri(11) = "undici"
nomi_numeri(12) = "dodici"
nomi_numeri(13) = "tredici"
nomi_numeri(14) = "quattordici"
nomi_numeri(15) = "quindici"
nomi_numeri(16) = "sedici"
nomi_numeri(17) = "diciassette"
nomi_numeri(18) = "diciotto"
nomi_numeri(19) = "diciannove"
nomi_numeri(20) = "venti"
nomi_numeri(30) = "trenta"
nomi_numeri(40) = "quaranta"
nomi_numeri(50) = "cinquanta"
nomi_numeri(60) = "sessanta"
nomi_numeri(70) = "settanta"
nomi_numeri(80) = "ottanta"
nomi_numeri(90) = "novanta"
For j = 20 To 90 Step 10
nomi_numeri(j + 1) = Mid(nomi_numeri(j), 1, Len(nomi_numeri(j)) - 1) & nomi_numeri(1)
For i = 2 To 9
nomi_numeri(j + i) = nomi_numeri(j) & nomi_numeri(i)
Next
nomi_numeri(j + 8) = Mid(nomi_numeri(j), 1, Len(nomi_numeri(j)) - 1) & nomi_numeri(8)
Next
importo = Int(importo)
inLettere = ""
If importo < 1000000000 Then
If Int(importo / 1000000) > 0 Then
If Int(importo / 1000000) = 1 Then
inLettere = inLettere & "unmilione"
Else
inLettere = inLettere & converti_importo_In_lettere(Int(importo / 1000000), False) & "milioni"
End If
End If
importo = importo Mod 1000000
If Int(importo / 1000) > 0 Then
If Int(importo / 1000) = 1 Then
inLettere = inLettere & "mille"
Else
inLettere = inLettere & converti_importo_In_lettere(Int(importo / 1000), False) & "mila"
End If
End If
importo = importo Mod 1000
If Int(importo / 100) > 0 Then
If Int(importo / 100) = 1 Then
inLettere = inLettere & "cento"
Else
inLettere = inLettere & converti_importo_In_lettere(Int(importo / 100), False) & "cento"
End If
End If
importo = importo Mod 100
If importo > 0 Then
inLettere = inLettere & nomi_numeri(importo)
End If
If aggiungi_decimali Then
If inLettere <>"" Then
inLettere = inLettere & "/" & right(Rdy.FormatCurrency(importoOriginale),2)
End If
End If
Else
inLettere = "########"
End If
converti_importo_In_lettere = inLettere
End Function
Importo=123456.89
Response.Write(converti_importo_In_lettere(Importo, True))
Questo esempio restituisce come risultato "centoventitremilaquattrocentocinquantasei/89"