160: def propisju(gender = 2)
161: raise "Это не число!" if self.nan?
162:
163: st = RuTils::Pluralization::sum_string(self.to_i, gender, "целая", "целых", "целых")
164:
165: remainder = self.to_s.match(/\.(\d+)/)[1]
166:
167: signs = remainder.to_s.size- 1
168:
169: it = [["десятая", "десятых"]]
170: it << ["сотая", "сотых"]
171: it << ["тысячная", "тысячных"]
172: it << ["десятитысячная", "десятитысячных"]
173: it << ["стотысячная", "стотысячных"]
174: it << ["миллионная", "милллионных"]
175: it << ["десятимиллионная", "десятимилллионных", "десятимиллионных"]
176: it << ["стомиллионная", "стомилллионных", "стомиллионных"]
177: it << ["миллиардная", "миллиардных", "миллиардных"]
178: it << ["десятимиллиардная", "десятимиллиардных", "десятимиллиардных"]
179: it << ["стомиллиардная", "стомиллиардных", "стомиллиардных"]
180: it << ["триллионная", "триллионных", "триллионных"]
181:
182: while it[signs].nil?
183: remainder = (remainder/10).round
184: signs = remainder.to_s.size- 1
185: end
186:
187: suf1, suf2, suf3 = it[signs][0], it[signs][1], it[signs][2]
188: st + " " + RuTils::Pluralization::sum_string(remainder.to_i, 2, suf1, suf2, suf2)
189: end