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))[/codevb] Questo esempio restituisce come risultato "centoventitremilaquattrocentocinquantasei/89"" name="description" />
 

Conversione di importi in lettere

Creato il: 11.11.2022
Questa funzione di esempio converte un importo numerico in lettere:

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"

Login