Главная страницаОбратная связьКарта сайта

Перевод денежных сумм из цифp в прописью



Function Сумма_прописью(s@) As String
Static triad(4) As Integer, numb1(0 To 19) As String, numb2(0 To 9) As String, numb3(0 To 9) As String
If s@ = 0 Then
Сумма_прописью = ""
Exit Function
End If
ss@ = s@
triad(1) = ss@ - Int(ss@ / 1000) * 1000
ss@ = Int(ss@ / 1000)
triad(2) = ss@ - Int(ss@ / 1000) * 1000
ss@ = Int(ss@ / 1000)
triad(3) = ss@ - Int(ss@ / 1000) * 1000
ss@ = Int(ss@ / 1000)
triad(4) = ss@ - Int(ss@ / 1000) * 1000
ss@ = Int(ss@ / 1000)
numb1(0) = ""
numb1(1) = "один "
numb1(2) = "два "
numb1(3) = "три "
numb1(4) = "четыре "
numb1(5) = "пять "
numb1(6) = "шесть "
numb1(7) = "семь "
numb1(8) = "восемь "
numb1(9) = "девять "
numb1(10) = "десять "
numb1(11) = "одиннадцать "
numb1(12) = "двенадцать "
numb1(13) = "тринадцать "
numb1(14) = "четырнадцать "
numb1(15) = "пятнадцать "
numb1(16) = "шестнадцать "
numb1(17) = "семнадцать "
numb1(18) = "восемнадцать "
numb1(19) = "девятнадцать "
numb2(0) = ""
numb2(1) = ""
numb2(2) = "двадцать "
numb2(3) = "тридцать "
numb2(4) = "сорок "
numb2(5) = "пятьдесят "
numb2(6) = "шестьдесят "
numb2(7) = "семьдесят "
numb2(8) = "восемьдесят "
numb2(9) = "девяносто "
numb3(0) = ""
numb3(1) = "сто "
numb3(2) = "двести "
numb3(3) = "триста "
numb3(4) = "четыреста "
numb3(5) = "пятьсот "
numb3(6) = "шестьсот "
numb3(7) = "семьсот "
numb3(8) = "восемьсот "
numb3(9) = "девятьсот "
txt$ = ""
If ss@ <> 0 Then
n% = MsgBox("Сумма выходит за границы формата", 16, "Сумма прописью")
Сумма_прописью = ""
Exit Function
End If
For i% = 4 To 1 Step -1
n% = 0
If triad(i%) > 0 Then
n% = Int(triad(i%) / 100)
txt$ = txt$ & numb3(n%)
n% = Int((triad(i%) - n% * 100) / 10)
txt$ = txt$ & numb2(n%)
If n% < 2 Then
n% = triad(i%) - (Int(triad(i%) / 10) - n%) * 10
Else
n% = triad(i%) - Int(triad(i%) / 10) * 10
End If
Select Case n%
Case 1
If i% = 2 Then txt$ = txt$ & "одна " Else txt$ = txt$ & "один "
Case 2
If i% = 2 Then txt$ = txt$ & "две " Else txt$ = txt$ & "два"
Case Else
txt$ = txt$ & numb1(n%)
End Select
Select Case i%
Case 2
If n% = 0 Or n% > 4 Then
txt$ = txt$ + "тысяч "
Else
If n% = 1 Then txt$ = txt$ + "тысяча " Else txt$ = txt$ + "тысячи "
End If
Case 3
If n% = 0 Or n% > 4 Then
txt$ = txt$ + "миллионов "
Else
If n% = 1 Then txt$ = txt$ + "миллион " Else txt$ = txt$ + "миллиона "
End If
Case 4
If n% = 0 Or n% > 4 Then
txt$ = txt$ + "миллиардов "
Else
If n% = 1 Then txt$ = txt$ + "миллиард " Else txt$ = txt$ + "миллиарда "
End If
End Select
End If
Next i%
If n% = 0 Or n% > 4 Then
txt$ = txt$ + "рублей"
Else
If n% = 1 Then txt$ = txt$ + "рубль" Else txt$ = txt$ + "рубля"
End If
txt$ = UCase$(Left$(txt$, 1)) & Mid$(txt$, 2)
Сумма_прописью = txt$
End Function


Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация программирование на Visual Basic - "Перевод денежных сумм из цифp в прописью", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2017 Дискета.info