Перевод чисел в текст
|
|
view plainprint? 1. Function ABC_123(n) 2. Dim Nums1, Nums2, Nums3, Nums4 As Variant 3. Nums1 = Array("", "один ", "два ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ") 4. Nums2 = Array("", "десять ", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят ", "девяносто ") 5. Nums3 = Array("", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот ") 6. Nums4 = Array("", "одна ", "две ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ") 7. Nums5 = Array("десять ", "одиннадцать ", "двенадцать ", "тринадцать ", "четырнадцать ", "пятнадцать ", "шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать ") 8. 9. koma_txt = "" 10. dr_decmil = "" 11. dr_mil = "" 12. dr_sottys = "" 13. dr_dectys = "" 14. dr_tys = "" 15. dr_sot = "" 16. dr_dec = "" 17. dr_ed = "" 18. konec = "" 19. 20. 21. If n <= 0 Then CHISLOPROPIS = "ноль" 22. If n <= 0 Then Exit Function 23. 24. ed = Int(Int(n - (10 ^ 1) * Int(n / (10 ^ 1))) / 10 ^ (1 - 1)) 25. dec = Int(Int(n - (10 ^ 2) * Int(n / (10 ^ 2))) / 10 ^ (2 - 1)) 26. sot = Int(Int(n - (10 ^ 3) * Int(n / (10 ^ 3))) / 10 ^ (3 - 1)) 27. tys = Int(Int(n - (10 ^ 4) * Int(n / (10 ^ 4))) / 10 ^ (4 - 1)) 28. dectys = Int(Int(n - (10 ^ 5) * Int(n / (10 ^ 5))) / 10 ^ (5 - 1)) 29. sottys = Int(Int(n - (10 ^ 6) * Int(n / (10 ^ 6))) / 10 ^ (6 - 1)) 30. mil = Int(Int(n - (10 ^ 7) * Int(n / (10 ^ 7))) / 10 ^ (7 - 1)) 31. decmil = Int(Int(n - (10 ^ 8) * Int(n / (10 ^ 8))) / 10 ^ (8 - 1)) 32. 33. Select Case decmil 34. Case 1 35. mil_txt = Nums5(mil) & "миллионов " 36. GoTo www 37. Case 2 To 9 38. decmil_txt = Nums2(decmil) 39. End Select 40. 41. Select Case mil 42. Case 1 43. mil_txt = Nums1(mil) & "миллион " 44. Case 2, 3, 4 45. mil_txt = Nums1(mil) & "миллиона " 46. Case 5 To 20 47. mil_txt = Nums1(mil) & "миллионов " 48. End Select 49. www: 50. sottys_txt = Nums3(sottys) 51. Select Case dectys 52. Case 1 53. tys_txt = Nums5(tys) & "тысяч " 54. GoTo eee 55. Case 2 To 9 56. dectys_txt = Nums2(dectys) 57. End Select 58. 59. Select Case tys 60. Case 0 61. If dectys > 0 Then tys_txt = Nums4(tys) & "тысяч " 62. Case 1 63. tys_txt = Nums4(tys) & "тысячa " 64. Case 2, 3, 4 65. tys_txt = Nums4(tys) & "тысячи " 66. Case 5 To 9 67. tys_txt = Nums4(tys) & "тысяч " 68. End Select 69. eee: 70. sot_txt = Nums3(sot) 71. 72. Select Case dec 73. Case 1 74. ed_txt = Nums5(ed) 75. GoTo rrr 76. Case 2 To 9 77. dec_txt = Nums2(dec) 78. End Select 79. rrr: 80. Cel = Fix(n) 81. If Len(n) = Len(Cel) Then ed_txt = Nums1(ed) Else ed_txt = Nums4(ed) 82. If ed_txt = Nums4(1) Then koma_txt = "целая" Else koma_txt = "целых" 83. If Len(n) = Len(Cel) Then koma_txt = "" 84. If Len(n) = Len(Cel) Then GoTo ttt 85. 86. drob = -Int(-(n * 10 ^ (Len(n) - Len(Cel) - 1)) - -(Cel * 10 ^ (Len(n) - Len(Cel) - 1))) 87. dr_ed = Int(Int(drob - (10 ^ 1) * Int(drob / (10 ^ 1))) / 10 ^ (1 - 1)) 88. dr_dec = Int(Int(drob - (10 ^ 2) * Int(drob / (10 ^ 2))) / 10 ^ (2 - 1)) 89. dr_sot = Int(Int(drob - (10 ^ 3) * Int(drob / (10 ^ 3))) / 10 ^ (3 - 1)) 90. dr_tys = Int(Int(drob - (10 ^ 4) * Int(drob / (10 ^ 4))) / 10 ^ (4 - 1)) 91. dr_dectys = Int(Int(drob - (10 ^ 5) * Int(drob / (10 ^ 5))) / 10 ^ (5 - 1)) 92. dr_sottys = Int(Int(drob - (10 ^ 6) * Int(drob / (10 ^ 6))) / 10 ^ (6 - 1)) 93. dr_mil = Int(Int(drob - (10 ^ 7) * Int(drob / (10 ^ 7))) / 10 ^ (7 - 1)) 94. dr_decmil = Int(Int(drob - (10 ^ 8) * Int(drob / (10 ^ 8))) / 10 ^ (8 - 1)) 95. 96. ' drob = Fix((m - cel) * 10 ^ (Len(m) - Len(cel) - 1)) 97. 98. Select Case dr_decmil 99. Case 1 100. dr_mil_txt = Nums5(dr_mil) & "миллионов " 101. GoTo www1 102. Case 2 To 9 103. dr_decmil_txt = Nums2(dr_decmil) 104. End Select 105. 106. Select Case dr_mil 107. Case 1 108. dr_mil_txt = Nums1(dr_mil) & "миллион " 109. Case 2, 3, 4 110. dr_mil_txt = Nums1(dr_mil) & "миллиона " 111. Case 5 To 20 112. dr_mil_txt = Nums1(dr_mil) & "миллионов " 113. End Select 114. www1: 115. dr_sottys_txt = Nums3(dr_sottys) 116. Select Case dr_dectys 117. Case 1 118. dr_tys_txt = Nums5(dr_tys) & "тысяч " 119. GoTo eee1 120. Case 2 To 9 121. dr_dectys_txt = Nums2(dr_dectys) 122. End Select 123. 124. Select Case dr_tys 125. Case 0 126. If dr_dectys > 0 Then dr_tys_txt = Nums4(dr_tys) & "тысяч " 127. Case 1 128. dr_tys_txt = Nums4(dr_tys) & "тысячa " 129. Case 2, 3, 4 130. dr_tys_txt = Nums4(dr_tys) & "тысячи " 131. Case 5 To 9 132. dr_tys_txt = Nums4(dr_tys) & "тысяч " 133. End Select 134. eee1: 135. dr_sot_txt = Nums3(dr_sot) 136. 137. Select Case dr_dec 138. Case 1 139. dr_ed_txt = Nums4(dr_ed) 140. GoTo ppp 141. Case 2 To 9 142. dr_dec_txt = Nums2(dr_dec) 143. End Select 144. ppp: 145. Select Case dr_ed 146. Case 1 147. dr_ed_txt = Nums4(dr_ed) 148. Case 2 149. dr_ed_txt = Nums4(dr_ed) 150. Case 3 To 9 151. dr_ed_txt = Nums1(dr_ed) 152. End Select 153. 154. konec_znach = Len(n) - Len(Cel) - 1 155. Select Case konec_znach 156. Case 1 157. If dr_ed_txt = Nums4(1) Then konec = "десятая" _ 158. Else: konec = "десятых" 159. Case 2 160. If dr_ed_txt = Nums4(1) Then konec = "сотая" _ 161. Else: konec = "сотых" 162. Case 3 163. If dr_ed_txt = Nums4(1) Then konec = "тысячная" _ 164. Else: konec = "тысячных" 165. Case 4 166. If dr_ed_txt = Nums4(1) Then konec = "десятитысячная" _ 167. Else: konec = "десятитысячных" 168. Case 5 169. If dr_ed_txt = Nums4(1) Then konec = "стотысячная" _ 170. Else: konec = "стотысячных" 171. Case 6 172. If dr_ed_txt = Nums4(1) Then konec = "миллионная" _ 173. Else: konec = "миллионных" 174. Case 7 175. If dr_ed_txt = Nums4(1) Then konec = "десятимиллионная" _ 176. Else: konec = "десятимиллионных" 177. End Select 178. If konec_znach > 7 Then konec = "...очень маленькая..." 179. ttt: 180. ABC_123 = decmil_txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt & koma_txt & " " & dr_decmil_txt & dr_mil_txt & dr_sottys_txt & dr_dectys_txt & dr_tys_txt & dr_sot_txt & dr_dec_txt & dr_ed_txt & konec 181. 182. End Function |
Скачано с www.znanio.ru
© ООО «Знанио»
С вами с 2009 года.