Gathering detailed insights and metrics for number-to-words-ru
Gathering detailed insights and metrics for number-to-words-ru
Gathering detailed insights and metrics for number-to-words-ru
Gathering detailed insights and metrics for number-to-words-ru
npm install number-to-words-ru
78.3
Supply Chain
100
Quality
76.9
Maintenance
100
Vulnerability
100
License
Module System
Min. Node Version
Typescript Support
Node Version
NPM Version
39 Stars
132 Commits
9 Forks
1 Watching
2 Branches
2 Contributors
Updated on 27 Nov 2024
Minified
Minified + Gzipped
TypeScript (99.59%)
JavaScript (0.25%)
HTML (0.16%)
Cumulative downloads
Total Downloads
Last day
17.1%
254
Compared to previous day
Last week
-14.1%
1,081
Compared to previous week
Last month
7%
4,586
Compared to previous month
Last year
18.5%
64,592
Compared to previous year
🔢 ➡ 🔡
1234567.89 ➡ Один миллион двести тридцать четыре тысячи пятьсот шестьдесят семь рублей 89 копеек
123.45 ➡ Сто двадцать три рубля сорок пять копеек
251 ➡ Двести пятьдесят одно сообщение
6712 ➡ Шесть тысяч семьсот двенадцать комментариев
-345.21 ➡ Минус триста сорок пять рублей 21 копейка
450.3 ➡ Четыреста пятьдесят долларов 30 центов
122.00572 ➡ Сто двадцать две целых пятьсот семьдесят две стотысячных
5/123 ➡ Пять сто двадцать третьих
Страница демонстрации работы модуля
Установить с помощью npm:
1npm install number-to-words-ru
Установить с помощью yarn:
1yarn add number-to-words-ru
1const convertNumberToWordsRu = require('number-to-words-ru').convert
2// или
3import { convert as convertNumberToWordsRu } from 'number-to-words-ru' // ES6
4
5// Использование без опций
6convertNumberToWordsRu('104')
7// Сто четыре рубля 00 копеек
8
9// или с опциями
10convertNumberToWordsRu('-4201512.21', {
11 currency: 'rub',
12 declension: 'nominative',
13 roundNumber: -1,
14 convertMinusSignToWord: true,
15 showNumberParts: {
16 integer: true,
17 fractional: true,
18 },
19 convertNumberToWords: {
20 integer: true,
21 fractional: false,
22 },
23 showCurrency: {
24 integer: true,
25 fractional: true,
26 },
27})
28// Минус четыре миллиона двести одна тысяча пятьсот двенадцать рублей 21 копейка
convert
convert(number, [options])
Конвертировать число в слова.
number (string|number)
: Число, которое нужно конвертировать.
Если введенное число типа number, то максимальное значение 9'007'199'254'740'991 (ограничение Javascript).
Если введенное число типа string, то максимальное значение 10305 (306 цифр) до запятой и 10304 (305 цифр) после запятой.
[options] (Object)
: Опции конвертирования числа.
(string)
: Возвращает конвертированное в текст число.
Объект options по умолчанию:
1{ 2 currency: 'rub', 3 declension: 'nominative', 4 roundNumber: -1, 5 convertMinusSignToWord: true, 6 showNumberParts: { 7 integer: true, 8 fractional: true, 9 }, 10 convertNumberToWords: { 11 integer: true, 12 fractional: false, 13 }, 14 showCurrency: { 15 integer: true, 16 fractional: true, 17 }, 18}
options
options.currency
currency: (string|Object)
Валюта числа.
'rub'
Строковое значение | Описание | Пример |
---|---|---|
'rub' | Рубль | 124 рубля 42 копейки |
'usd' | Доллар | 124 доллара 42 цента |
'eur' | Евро | 124 евро 42 цента |
'number' | Число без реальной валюты | 124 целых 42 сотых |
Примечание: Для всех стандартных валют, кроме number
установлено fractionalPartMinLength: 2
. Также эти валюты автоматически округляются до 2
знаков после запятой.
1{ 2 currencyNameCases: ['рубль', 'рубля', 'рублей'], // [1 рубль, 2-4 рубля, 5-9 рублей] 3 fractionalPartNameCases: ['копейка', 'копейки', 'копеек'], 4 currencyNounGender: { 5 integer: 0, // 0 => Мужской род ('один', 'два'...) 6 fractionalPart: 1 // 1 => Женский род ('одна', 'две'...) 7 }, 8 fractionalPartMinLength: 2 9} 10// или 11{ 12 currencyNameDeclensions: { 13 nominative: ['рубль', ''], 14 genitive: ['рубля', 'рублей'], 15 dative: ['рублю', 'рублям'], 16 accusative: ['рубль', 'рубли'], 17 instrumental: ['рублём', 'рублями'], 18 prepositional: ['рубле', 'рублях'], 19 }, 20 fractionalPartNameDeclensions: { 21 nominative: ['копейка', ''], 22 genitive: ['копейки', 'копеек'], 23 dative: ['копейке', 'копейкам'], 24 accusative: ['копейку', 'копейки'], 25 instrumental: ['копейкой', 'копейками'], 26 prepositional: ['копейке', 'копейках'], 27 }, 28 currencyNounGender: { 29 integer: 0, 30 fractionalPart: 1 31 }, 32 fractionalPartMinLength: 2 33} 34// или 35{ 36 currencyNameCases: ['сообщение', 'сообщения', 'сообщений'], 37 fractionalPartNameCases: ['', '', ''], 38 currencyNounGender: { 39 integer: 2, // 2 => Средний род ('одно', 'два'...) 40 fractionalPart: 0 41 } 42}
Примечание: Если объект валюты заполнить не полностью, то недостающие параметры будут взяты из объекта валюты по умолчанию ('rub'
).
'rub'
):1{ 2 currencyNameCases: ['рубль', 'рубля', 'рублей'], // [1 рубль, 2-4 рубля, 5-9 рублей] 3 currencyNameDeclensions: { 4 nominative: ['рубль', ''], // [Единственное число, Множественное число] 5 genitive: ['рубля', 'рублей'], 6 dative: ['рублю', 'рублям'], 7 accusative: ['рубль', 'рубли'], 8 instrumental: ['рублём', 'рублями'], 9 prepositional: ['рубле', 'рублях'], 10 }, 11 fractionalPartNameCases: ['копейка', 'копейки', 'копеек'], 12 fractionalPartNameDeclensions: { 13 nominative: ['копейка', ''], 14 genitive: ['копейки', 'копеек'], 15 dative: ['копейке', 'копейкам'], 16 accusative: ['копейку', 'копейки'], 17 instrumental: ['копейкой', 'копейками'], 18 prepositional: ['копейке', 'копейках'], 19 }, 20 currencyNounGender: { 21 integer: 0, // 0 => Мужской род ('один', 'два'...) 22 fractionalPart: 1 // 1 => Женский род ('одна', 'две'...) 23 }, 24 fractionalPartMinLength: 2 25}
currency
:currencyNameCases: (Array)
: Формы названия валюты целой части числа. 3 элемента в массиве.
currencyNameDeclensions: (Object)
: Падежи названия валюты целой части числа. В объекте 6 падежей, внутри каждого в массиве указаны формы единственного и множественного числа.
fractionalPartNameCases: (Array)
: Формы названия валюты дробной части числа. 3 элемента в массиве.
fractionalPartNameDeclensions: (Object)
: Падежи названия валюты дробной части числа. В объекте 6 падежей, внутри каждого в массиве указаны формы единственного и множественного числа.
currencyNounGender: (Object)
: Род числа: 0 - мужской род (один), 1 - женский род (одна), 2 - средний род (одно).
integer
- Для целой части числа.
fractionalPart
- Для дробной части числа.
fractionalPartMinLength: (number)
: Минимальное количество знаков, которое может остаться в дробной части. Например, при значении 3
в дробной части возможно число 002
.
Примечание: В массивах currencyNameCases
и fractionalPartNameCases
: первый элемент для цифры 1 (1 рубль
), второй элемент для цифр 2-4 (2 рубля
), третий элемент для цифр 5-9 и 0 (5 рублей
).
options.declension
declension: (string)
Выбрать падеж.
'nominative'
'nominative'
- Именительный падеж. Например, "Двадцать одна тысяча рублей".'genitive'
- Родительный падеж. Например, "Двадцати одной тысячи рублей".'dative'
- Дательный падеж. Например, "Двадцати одной тысяче рублей".'accusative'
- Винительный падеж. Например, "Двадцать одну тысячу рублей".'instrumental'
- Творительный падеж. Например, "Двадцатью одной тысячей рублей".'prepositional'
- Предложный падеж. Например, "Двадцати одной тысяче рублей".1import { convert as convertNumberToWordsRu } from 'number-to-words-ru'
2
3convertNumberToWords('41521000', {
4 declension: 'instrumental',
5})
6// Сорока одним миллионом пятьюстами двадцатью одной тысячей рублей 00 копеек
7
8convertNumberToWords('2711.00052', {
9 declension: 'instrumental',
10 currency: 'number',
11 convertNumberToWords: {
12 fractional: true,
13 },
14})
15// Двумя тысячами семьюстами одиннадцатью целыми пятьюдесятью двумя стотысячными
16
17convertNumberToWords('672/15', {
18 declension: 'instrumental',
19 convertNumberToWords: {
20 fractional: true,
21 },
22})
23// Шестьюстами семьюдесятью двумя пятнадцатыми рубля
options.roundNumber
roundNumber: (number)
Округлить число до заданной точности.
-1
(number)
- Целое число. Количество знаков после запятой, до которой нужно округлить число.-1
- Отключить округление.Примечание: Если опция currency
является стандартной валютой ('rub'
/ 'usd'
/ 'eur'
), то даже после округления число будет еще раз округлено до 2 знаков после запятой.
1import { convert as convertNumberToWordsRu } from 'number-to-words-ru' 2 3convertNumberToWordsRu('129.6789', { 4 currency: 'rub', 5 roundNumber: 5, 6}) 7// Сто двадцать девять рублей 68 копеек 8 9convertNumberToWordsRu('129.6789', { 10 currency: 'rub', 11 roundNumber: 1, 12}) 13// Сто двадцать девять рублей 70 копеек 14 15convertNumberToWordsRu('129.6789', { 16 currency: 'rub', 17 roundNumber: 0, 18}) 19// Сто тридцать рублей 00 копеек
Примечание: Если разделитель числа является дробной чертой ("/
"), то число НЕ будет округлено в любом случае.
options.convertMinusSignToWord
convertMinusSignToWord: (Boolean)
Конвертировать знак минус в слово ( '-' --> 'минус' ).
true
options.showNumberParts
showNumberParts: (Object)
Отображать указанные части числа.
1{ 2 integer: true, // Целая часть числа 3 fractional: true // Дробная часть числа 4}
1import { convert as convertNumberToWordsRu } from 'number-to-words-ru' 2 3convertNumberToWordsRu('123.45', { 4 showNumberParts: { 5 integer: true, 6 fractional: false, 7 }, 8}) 9// Сто двадцать три рубля 10 11convertNumberToWordsRu('123.45', { 12 showNumberParts: { 13 integer: false, 14 fractional: true, 15 }, 16}) 17// 45 копеек
options.convertNumberToWords
convertNumberToWords: (Object)
Конвертировать в слова указанные части числа .
1{ 2 integer: true, // Целая часть числа 3 fractional: false // Дробная часть числа 4}
1import { convert as convertNumberToWordsRu } from 'number-to-words-ru' 2 3convertNumberToWordsRu('123.45', { 4 convertNumberToWords: { 5 integer: true, 6 fractional: false, 7 }, 8}) 9// Сто двадцать три рубля 45 копеек 10 11convertNumberToWordsRu('123.45', { 12 convertNumberToWords: { 13 integer: false, 14 fractional: true, 15 }, 16}) 17// 123 рубля сорок пять копеек
options.showCurrency
showCurrency: (Object)
Отображать валюту в указанных частях числа.
1{ 2 integer: true, // Целая часть числа 3 fractional: true // Дробная часть числа 4}
1import { convert as convertNumberToWordsRu } from 'number-to-words-ru' 2 3convertNumberToWordsRu('123.45', { 4 showCurrency: { 5 integer: true, 6 fractional: false, 7 }, 8}) 9// Сто двадцать три рубля 45 10 11convertNumberToWordsRu('123.45', { 12 showCurrency: { 13 integer: false, 14 fractional: true, 15 }, 16}) 17// Сто двадцать три 45 копеек
1import { convert as convertNumberToWordsRu } from 'number-to-words-ru'
2
3const converted = convertNumberToWordsRu('-905.645', {
4 currency: 'usd',
5 convertNumberToWords: {
6 integer: true,
7 fractional: true,
8 },
9})
10// converted === 'Минус девятьсот пять долларов шестьдесят пять центов'
1import { convert as convertNumberToWordsRu } from 'number-to-words-ru' 2 3const converted = convertNumberToWordsRu('8952.41', { 4 currency: { 5 currencyNameCases: ['юань', 'юаня', 'юаней'], 6 fractionalPartNameCases: ['фынь', 'фыня', 'фыней'], 7 currencyNounGender: { 8 integer: 0, 9 fractionalPart: 0, 10 }, 11 }, 12}) 13// converted === 'Восемь тысяч девятьсот пятьдесят два юаня 41 фынь'
1import { convert as convertNumberToWordsRu } from 'number-to-words-ru' 2 3const converted = convertNumberToWordsRu('6712', { 4 currency: { 5 currencyNameCases: ['сообщение', 'сообщения', 'сообщений'], 6 fractionalPartNameCases: ['', '', ''], 7 currencyNounGender: { 8 integer: 2, 9 fractionalPart: 0, 10 }, 11 }, 12 showNumberParts: { 13 fractional: false, 14 }, 15}) 16// converted === 'Двести пятьдесят одно сообщение'
1import { convert as convertNumberToWordsRu } from 'number-to-words-ru' 2 3const converted = convertNumberToWordsRu('6712', { 4 currency: { 5 currencyNameCases: ['комментарий', 'комментария', 'комментариев'], 6 fractionalPartNameCases: ['', '', ''], 7 currencyNounGender: { 8 integer: 0, 9 fractionalPart: 0, 10 }, 11 }, 12 showNumberParts: { 13 fractional: false, 14 }, 15}) 16// converted === 'Шесть тысяч семьсот двенадцать комментариев'
1import { convert as convertNumberToWordsRu } from 'number-to-words-ru' 2 3const converted = convertNumberToWordsRu('9516351', { 4 showNumberParts: { 5 fractional: false, 6 }, 7 showCurrency: { 8 integer: false, 9 }, 10}) 11// converted === 'Девять миллионов пятьсот шестнадцать тысяч триста пятьдесят один'
1import { convert as convertNumberToWordsRu } from 'number-to-words-ru' 2 3const converted = convertNumberToWordsRu('452/971', { 4 convertNumberToWords: { 5 fractional: true, 6 }, 7 showCurrency: { 8 fractional: false, 9 }, 10}) 11// converted === 'Четыреста пятьдесят две девятьсот семьдесят первых'
1import { convert as convertNumberToWordsRu } from 'number-to-words-ru' 2 3const converted = convertNumberToWordsRu('235.00000706', { 4 currency: 'number', 5 convertNumberToWords: { 6 fractional: true, 7 }, 8}) 9// converted === 'Двести тридцать пять целых семьсот шесть стомиллионных'
1import { convert as convertNumberToWordsRu } from 'number-to-words-ru' 2 3let converted = convertNumberToWordsRu('0.5', { 4 currency: 'number', 5 convertNumberToWords: { 6 fractional: true, 7 }, 8}) 9converted = converted + ' литра воды' 10// converted === 'Ноль целых пять десятых литра воды'
MIT
No vulnerabilities found.
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
0 existing vulnerabilities detected
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
no SAST tool detected
Details
Reason
Found 0/30 approved changesets -- score normalized to 0
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Score
Last Scanned on 2024-11-25
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More