@@ -12,6 +12,7 @@ public static class NumbersToWords
1212 static string AppendLvFemale = " лева" ;
1313 static string AppendStotinki = " стотинки" ;
1414 static string AppendStotinka = " стотинка" ;
15+ static string AppendStotinkaShort = "ст." ;
1516
1617 static string ConvertWholeNumber ( int n )
1718 {
@@ -96,102 +97,100 @@ private static string Thousands(int n)
9697 return units [ i ] + " хиляди " + Hundreds ( d ) ;
9798 }
9899
99- private static string TensOfThousands ( int n )
100+ private static string TensOfThousands ( int number )
100101 {
101- var i = n / 10000 ;
102- var d = n % 10000 ;
103- var e = d % 1000 ;
104- var j = d / 1000 ;
105- var g = n / 1000 ;
106- var h = n / 10 ;
107- var f = g % 10 ;
108- var r = e % 100 ;
109- var t = r % 10 ;
102+ var o = number / 10000 ;
103+ var n = number % 10000 ;
104+ var e = n % 1000 ;
105+ var b = n / 1000 ;
106+ var i = number / 1000 ;
107+ var t = number / 10 ;
108+ var s = i % 10 ;
109+ var of = e % 100 ;
110+ var tware = of % 10 ;
110111
111- //if (n == 10000) return "десет хиляди";
112-
113- if ( n > 10000 && n < 10099 )
112+ if ( number > 10000 && number < 10099 )
114113 {
115- return tens [ i ] + " хиляди и " + Tens ( d ) ;
114+ return tens [ o ] + " хиляди и " + Tens ( n ) ;
116115 }
117116
118- if ( n >= 10099 && n < 11000 )
117+ if ( number >= 10099 && number < 11000 )
119118 {
120- if ( r == 0 ) // 10100, 10900, 10800 , etc
119+ if ( of == 0 ) // 10100, 10900, 10800 , etc
121120 {
122- return tens [ i ] + " хиляди и " + Hundreds ( d ) ;
121+ return tens [ o ] + " хиляди и " + Hundreds ( n ) ;
123122 }
124123
125- return tens [ i ] + " хиляди " + Hundreds ( d ) ;
124+ return tens [ o ] + " хиляди " + Hundreds ( n ) ;
126125 }
127126
128- if ( n >= 11000 && n < 20000 )
127+ if ( number >= 11000 && number < 20000 )
129128 {
130- if ( r == 0 ) // 11100, 11900, 11800 , etc
129+ if ( of == 0 ) // 11100, 11900, 11800 , etc
131130 {
132131 if ( e == 0 )
133132 {
134- return teens [ f ] + " хиляди" ;
133+ return teens [ s ] + " хиляди" ;
135134 }
136135
137- return teens [ f ] + " хиляди и " + Hundreds ( e ) ;
136+ return teens [ s ] + " хиляди и " + Hundreds ( e ) ;
138137 }
139138
140- return teens [ f ] + " хиляди " + Hundreds ( e ) ;
139+ return teens [ s ] + " хиляди " + Hundreds ( e ) ;
141140 }
142141
143- if ( n > 20000 && n < 99999 )
142+ if ( number > 20000 && number < 99999 )
144143 {
145- if ( j == 1 )
144+ if ( b == 1 )
146145 {
147146 if ( e < 100 )
148147 {
149- return tens [ i ] + " и една хиляди и " + Tens ( e ) ;
148+ return tens [ o ] + " и една хиляди и " + Tens ( e ) ;
150149 }
151150
152- if ( t == 0 )
151+ if ( tware == 0 )
153152 {
154- return tens [ i ] + " и една хиляди и " + Hundreds ( e ) ;
153+ return tens [ o ] + " и една хиляди и " + Hundreds ( e ) ;
155154 }
156155
157- if ( t > 0 )
156+ if ( tware > 0 )
158157 {
159- return tens [ i ] + " и една хиляди " + Hundreds ( e ) ;
158+ return tens [ o ] + " и една хиляди " + Hundreds ( e ) ;
160159 }
161160 }
162161
163- if ( j == 2 )
162+ if ( b == 2 )
164163 {
165164 if ( e < 100 )
166165 {
167- return tens [ i ] + " и две хиляди и " + Tens ( e ) ;
166+ return tens [ o ] + " и две хиляди и " + Tens ( e ) ;
168167 }
169168
170- if ( t == 0 )
169+ if ( tware == 0 )
171170 {
172- return tens [ i ] + " и две хиляди и " + Hundreds ( e ) ;
171+ return tens [ o ] + " и две хиляди и " + Hundreds ( e ) ;
173172 }
174173
175- if ( t > 0 )
174+ if ( tware > 0 )
176175 {
177- return tens [ i ] + " и две хиляди " + Hundreds ( e ) ;
176+ return tens [ o ] + " и две хиляди " + Hundreds ( e ) ;
178177 }
179178 }
180179
181- return Tens ( g ) + " хиляди и " + Hundreds ( e ) ;
180+ return Tens ( i ) + " хиляди и " + Hundreds ( e ) ;
182181 }
183182
184- if ( d == 0 ) // 10000,20000,30000, etc
183+ if ( n == 0 ) // 10000,20000,30000, etc
185184 {
186- return tens [ i ] + " хиляди" ;
185+ return tens [ o ] + " хиляди" ;
187186 }
188187
189- if ( d < 100 )
188+ if ( n < 100 )
190189 {
191- return tens [ i ] + " хиляди и " + Tens ( r ) ;
190+ return tens [ o ] + " хиляди и " + Tens ( of ) ;
192191 }
193192
194- return Tens ( g ) + " хиляди " + Hundreds ( e ) ;
193+ return Tens ( i ) + " хиляди " + Hundreds ( e ) ;
195194 }
196195
197196
@@ -210,23 +209,23 @@ public static string Convert(decimal number)
210209 return under20 [ leva ] + AppendLvMale ; // един лев
211210 }
212211
213- string levaWords = leva != 1 ? ConvertWholeNumber ( leva ) + " лева" : "един лев" ;
212+ string levaWords = leva != 1 ? ConvertWholeNumber ( leva ) + AppendLvFemale : "един" + AppendLvMale ;
214213
215214 string stotinkiWords ;
216215
217216 if ( leva == 0 )
218217 {
219- if ( stotinki == 0 ) return "нула лева" ;
218+ if ( stotinki == 0 ) return "нула" + AppendLvFemale ;
220219 if ( stotinki == 1 ) return "една" + AppendStotinka ;
221220 if ( stotinki == 2 ) return "две" + AppendStotinki ;
222221 if ( stotinki == 10 ) return "десет" + AppendStotinki ;
223222 if ( stotinki < 20 ) return under20 [ stotinki ] + AppendStotinki ;
224223
225- stotinkiWords = stotinki . ToString ( ) + " ст." ;
224+ stotinkiWords = stotinki . ToString ( ) + " " + AppendStotinkaShort ;
226225 }
227226 else
228227 {
229- stotinkiWords = stotinki . ToString ( ) + " ст." ;
228+ stotinkiWords = stotinki . ToString ( ) + " " + AppendStotinkaShort ;
230229 }
231230
232231 if ( leva == 0 )
0 commit comments