Skip to content

Числогон - Конвертер цифровой формы числа в прописную форму (прописью, пропись)

Notifications You must be signed in to change notification settings

tyrbonit/chislogon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 

Repository files navigation

Числогон (chislogon)

Конвертер цифровой формы числа в прописную форму числа с поддержкой склонения единиц измерения

Возможности

  • Пропись целых чисел: 230256 =〉двести тридцать тысяч двести пятьдесят шесть
  • Пропись дробных чисел: 230256,515 =〉двести тридцать тысяч двести пятьдесят шесть целых пятьсот пятнадцать тысячных
  • Пропись денежных сумм: 5,68 =〉пять рублей шестьдесят восемь копеек, 1 доллар 56 центов, два юаня 36 феней
  • Подстановка единиц во множественную форму без прописи числа: 51 единица, 22 единицы, 5 единиц
  • Пропись чисел со склонением любой единицы измерения (задаются 3 формы мн.ч. и род): двести пятьдесят шесть бутявок одна козявка

Использование

Подключить файл chislogon.js к ресурсам веб-страницы

<script src="chislogon.js"></script>

Для общего случая вызвать функцию common у объекта chislogon

console.log(chislogon.common('256'))
=> "двести пятьдесят шесть"

console.log(chislogon.common('000']))
=> ""

console.log(chislogon.common('251', ["f", "машина", "машины", "машин"]))
=> "двести пятьдесят одна машина"

console.log(chislogon.common('253', ["m", "автомобиль", "автомобиля", "автомобилей"]))
=> "двести пятьдесят три автомобиля"

console.log(chislogon.common('251', ["n", "окно", "окна", "окон"]))
=> "двести пятьдесят одно окно"

console.log(chislogon.common('000', ["m", "знак", "знака", "знаков"], "ничего"))
=> "ничего"

console.log(chislogon.common('2', ["f", "гвоздь", "гвоздя", "гвоздей"], false, true))
=> "2 гвоздя"

  • 1 аргумент - число в строковом формате
  • 2 аргумент - склонение единицы измерения: ["род", "форма для 1", " форма для 2-4", "форма для 4-9 и 0"]
  • 3 аргумент - поведение единицы измерения при нуле: true - показывать, false - не показывать, "ноль" свой вариант
  • 4 аргумент - (true/false) оставить число и просклонять только единицу измерения

Для случая с десятичными вызвать функцию decimal у объекта chislogon

  • !!! Внимание, функция работает как с точкой, так и с запятой между целой и дробной частью
console.log(chislogon.decimal('256.89'))
=> "двести пятьдесят шесть целых восемьдесят девять сотых"

console.log(chislogon.decimal('1000256,001'))
=> "один миллион двести пятьдесят шесть целых одна тысячная"

console.log(chislogon.decimal('15454656532546,2454545455'))
=> "пятнадцать триллионов 
четыреста пятьдесят четыре миллиарда
шестьсот пятьдесят шесть миллионов
пятьсот тридцать две тысячи
пятьсот сорок шесть целых
два миллиарда
четыреста пятьдесят четыре миллиона
пятьсот сорок пять тысяч
четыреста пятьдесят пять десятимиллиардных"

console.log(chislogon.decimal('0.0'))
=> ""

console.log(chislogon.decimal('1000256,001', {off_base:true, off_part:true}))
=> "1000256 целых 1 тысячная"

console.log(chislogon.decimal('0.0', {zero_base:true, zero_part:true}))
=> "ноль целых ноль десятых"

console.log(chislogon.decimal('0.0', {zero_base:true, zero_part:false}))
=> "ноль целых"

console.log(chislogon.decimal('0.0', {zero_base:false, zero_part:true}))
=> "ноль десятых"

console.log(chislogon.decimal('236,0', {zero_base:false, zero_part:"ровно"}))
=> "двести тридцать шесть целых ровно"

Для случая с денежными суммами вызвать функцию currency у объекта chislogon

console.log(chislogon.currency('2562,01'))
=> "две тысячи пятьсот шестьдесят два рубля одна копейка"

console.log(chislogon.currency('1256.23', {off_part: true}))
=> "одна тысяча двести пятьдесят шесть рублей 23 копейки"

console.log(chislogon.currency('5665485.23', {off_base: true, off_part: true}))
=> "5665485 рублей 23 копейки"

console.log(chislogon.currency('2000252000.998', {currency: "CNY"}))
=> "два миллиарда двести пятьдесят две тысячи один юань"

console.log(chislogon.currency('2000252.56', {currency: "CNY"}))
=> "два миллиона двести пятьдесят два юаня пять цзяо шесть фэней"

console.log(chislogon.currency('0.82'))
=> "восемьдесят две копейки"

console.log(chislogon.currency('0.82', {zero_base:true}))
=> "ноль рублей восемьдесят две копейки"

console.log(chislogon.currency('236', {zero_part:"ровно"}))
=> "двести тридцать шесть рублей ровно"

console.log(chislogon.currency('2568.56', {currency:'USD', zero_part:"ровно"}))
=> "две тысячи пятьсот шестьдесят восемь долларов пятьдесят шесть центов"

console.log(chislogon.currency('1', {currency:'USD', zero_part:"ровно"}))
=> "один доллар ровно"

console.log(chislogon.currency('2156,22', {unit:{
                                                base:["m","фертинг","фертинга","фертингов"],
                                                part:["m","сантик","сантика","сантиков"]
                                                }}))
=> "две тысячи сто пятьдесят шесть фертингов двадцать два сантика" (из "Незнайка на луне":-))

  • Опция currency может принимать RUB, USD, EUR, CNY, KZT, UAH
  • Опция unit - объект с двумя параметрами: base - список названий основной единицы (например, китайский "юань"), part - список названий 1/100 части основной единицы (например, китайский "фэнь") и part10 - список названий 1/10 части основной единицы (например, китайский "цзяо")
  • Формат base, part и part10 - список из склонений единицы измерения: ["род", "форма для 1", " форма для 2-4", "форма для 4-9 и 0"]

About

Числогон - Конвертер цифровой формы числа в прописную форму (прописью, пропись)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published