Skip to content

KovikaSA/Decimal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Библиотека decimal

Введение

В этом проекте реализована библиотека s21_decimal.h на языке C, которая добавляет возможность работы с типом "decimal". Этот тип особенно важен для финансовых расчетов, где критически важно избегать погрешностей, характерных для типов с плавающей точкой. Библиотека позволяет проводить арифметические операции, преобразования и сравнения для десятичных чисел.

Информация о типе Decimal

Тип Decimal представляет десятичные числа в диапазоне от -79,228,162,514,264,337,593,543,950,335 до +79,228,162,514,264,337,593,543,950,335. Значение по умолчанию равно 0. Тип подходит для финансовых расчетов, требующих точности без ошибок округления.

Двоичное представление

Двоичное представление Decimal состоит из:

  • 1 разрядного знака
  • 96 разрядного целого числа
  • Коэффициента масштабирования, который указывает положение десятичной точки.

Decimal число может быть реализовано в виде массива из четырех 32-разрядных целых чисел:

typedef struct {
    int bits[4];
} s21_decimal;

Основные функции

  • Арифметические операторы: сложение, вычитание, умножение, деление.
  • Операторы сравнения: меньше, больше, равно, не равно.
  • Преобразователи: преобразование из int и float, а также обратно.
  • Другие функции: округление, отбрасывание дробной части, получение отрицательного значения.

Установка и запуск

  1. Клонируйте репозиторий проекта:

    git clone https://github.com/KovikaSA/Decimal
  2. Перейдите в директорию проекта:

    cd <путь к проекту>
  3. Для сборки для сборки библиотеки используйте make:

    make

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

Тесты для утилит можно запустить с помощью следующих команд:

make test

Чтобы сгенерировать отчет по покрытию, выполните команду

make gcov_report

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors