MoneyToWordsFSharpLib 1.0.4

dotnet add package MoneyToWordsFSharpLib --version 1.0.4
                    
NuGet\Install-Package MoneyToWordsFSharpLib -Version 1.0.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MoneyToWordsFSharpLib" Version="1.0.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MoneyToWordsFSharpLib" Version="1.0.4" />
                    
Directory.Packages.props
<PackageReference Include="MoneyToWordsFSharpLib" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MoneyToWordsFSharpLib --version 1.0.4
                    
#r "nuget: MoneyToWordsFSharpLib, 1.0.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MoneyToWordsFSharpLib@1.0.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MoneyToWordsFSharpLib&version=1.0.4
                    
Install as a Cake Addin
#tool nuget:?package=MoneyToWordsFSharpLib&version=1.0.4
                    
Install as a Cake Tool

💰 MoneyToWords — Сумма прописью

.NET NuGet Build License

MoneyToWords — надёжная библиотека на F#, преобразующая числа в текст с правильным склонением:

  • "один рубль",
  • "двадцать одна тысяча",
  • "сто двадцать три миллиона".

💡 Этот проект создан для изучения F#, принципов функционального программирования, механизмов GitHub и паттернов проектирования. Выполнен по принципам production-ready кода:

  • полное тестирование,
  • чистая архитектура,
  • документация
  • готовность к использованию в реальных системах.

Подходит для:

  • Формирования банковских документов
  • Чеков и счётов
  • Финансовых отчётов
  • Генерации суммы прописью в печатных формах

✨ Особенности

  • ✅ Поддержка чисел до триллионов
  • 🇷🇺 Правильное склонение: рубль, рубля, рублей
  • 🔤 Женский род для тысяч: одна тысяча, двадцать одна тысяча
  • 🧪 100% покрытие тестами
  • 🧩 Легко расширить для других языков
  • 📦 Готова к использованию как NuGet-пакет

🚀 Примеры использования

	toWords 1L 0L // → "один рубль и ноль копеек"
	toWords 3L 50L // → "три рубля и пятьдесят копеек"
	toWords 21_000L 0L // → "двадцать одна тысяча рублей и ноль копеек"	
	toWords 112_234L 75L // → "сто двенадцать тысяч двести тридцать четыре рубля и семьдесят пять копеек"
	toWords 0L 1L // → "ноль рублей и одна копейка"

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

	open MoneyToWords

	let result = toWords 42_000L 50L
	match result with
	| Ok text -> printfn "Сумма: %s" text
	| Error msg -> printfn "Ошибка: %s" msg

🧩 Как это работает

Число разбивается на группы по 3 цифры (тысячи, миллионы и т.д.), каждая обрабатывается отдельно:

123 456 789
  |   |   └─ 789 → "семьсот восемьдесят девять"
  |   └───── 456 → "четыреста пятьдесят шесть тысяч"
  └───────── 123 → "сто двадцать три миллиона"

Для каждой группы:

  • Используются правильные формы: тысяча, тысячи, тысяч
  • Учитываются особые случаи: одна тысяча, две тысячи
  • Правильное склонение чисел: пятнадцать, а не пятьнадцать

🧪 Тестирование

Проект полностью покрыт тестами:

Юнит-тесты — все граничные случаи:

  • 0, 1, 2, 5

  • 11–19

  • 21, 22, 25 — правильное окончание

  • 100, 1000, 999_999_999_999_999

  • Свойства (FsCheck) — проверка на тысячах случайных значений:

  • Склонение по последней цифре

  • Исключения для 11–14

  • Поддержка больших чисел

Все тесты проходят на CI при каждом коммите.

🛠 Установка

	dotnet add package MoneyToWords

🧱 Сборка и тесты

	dotnet build
	dotnet test

Проект использует:

  • F# .NET 10 LTS
  • xUnit, FsCheck, Unquote

📄 Лицензия

MIT — свободно используй в любых проектах, коммерческих и открытых.


🙏 Поддержка


🙌 Автор

@DivinMA — GitHub | Telegram


🟢 Статус

✅ Стабильная версия: v1.0.0 ✅ CI/CD: CI ✅ NuGet: NuGet


💡 Благодарности

Спасибо, что используешь этот проект!

Если он помог — поставь ⭐ — это вдохновляет на развитие.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.4 28 1/23/2026

Первый стабильный релиз