Public Function Zodis(ByVal Suma As Double) As String
Dim I As Integer, J As Integer, K As Integer, N As Integer, Str As String
Dim Narys(8) As Integer, Nedesimt As Boolean
Dim Vienas, Lika, Desimt, Simtas, Tukst, Milion
Vienas = Array("vienas ", "du ", "trys ", "keturi ", "penki ", "ei ", "septyni ", "atuoni ", "devyni ")
Lika = Array("vienuolika ", "dvylika ", "trylika ", "keturiolika ", "penkiolika ", "eiolika ", "septyniolika ", "atuoniolika ", "devyniolika ")
Desimt = Array("deimt ", "dvideimt ", "trisdeimt ", "keturiasdeimt ", "penkiasdeimt ", "eiasdeimt ", "septyniasdeimt ", "atuoniasdeimt ", "devyniasdeimt ")
Simtas = Array("imtas ", "imtai ")
Tukst = Array("tkstantis ", "tkstaniai ", "tkstani ")
Milion = Array("milijonas ", "milijonai ", "milijonu ")
Str = CStr(Int(Abs(Suma)))
N = Len(Str)
If N < 10 Then
For I = N To 1 Step -1
Narys(N - I) = Mid(Str, I, 1)
Next I
If Suma < 0 Then Str = "minus " Else Str = ""
K = 0
For J = Int((N - 1) / 3) To 0 Step -1
Nedesimt = False
For I = N - 1 - K To J * 3 Step -1
Select Case I - J * 3
Case 2
If Narys(I) <> 0 Then
Str = Str & Vienas(Narys(I) - 1)
If Narys(I) = 1 Then Str = Str & Simtas(0) Else Str = Str & Simtas(1)
End If
Case 1
If Narys(I) = 1 And Narys(I - 1) <> 0 Then
Nedesimt = True
Else
If Narys(I) <> 0 Then Str = Str & Desimt(Narys(I) - 1)
End If
Case 0
If Nedesimt Then
Str = Str & Lika(Narys(I) - 1)
Else
If Narys(I) <> 0 Then Str = Str & Vienas(Narys(I) - 1)
End If
End Select
Next I
K = N - J * 3
Select Case J
Case 0
If Str = "" Or Str = "minus " Then Str = Str & "nulis "
Str = Str & "Lt " & Format((Abs(Suma) - Int(Abs(Suma))) * 100, "00") & " ct"
Case 1
If K = 1 Or (Narys(J * 3) <> 0 And Narys(1 + J * 3) <> 1) Then
If Narys(J * 3) = 1 Then Str = Str & Tukst(0) Else Str = Str & Tukst(1)
Else
If Narys(3) + Narys(4) + Narys(5) <> 0 Then Str = Str & Tukst(2)
End If
Case 2
If K = 1 Or (Narys(J * 3) <> 0 And Narys(1 + J * 3) <> 1) Then
If Narys(J * 3) = 1 Then Str = Str & Milion(0) Else Str = Str & Milion(1)
Else
Str = Str & Milion(2)
End If
End Select
Next J
Zodis = Chr(Asc(Str) - 32) & Right(Str, Len(Str) - 1)
Else
Zodis = "Tiek negali buti"
End If
End Function