В этом проекте реализована библиотека s21_decimal.h на языке C, которая добавляет возможность работы с типом "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, а также обратно.
- Другие функции: округление, отбрасывание дробной части, получение отрицательного значения.
-
Клонируйте репозиторий проекта:
git clone https://github.com/KovikaSA/Decimal
-
Перейдите в директорию проекта:
cd <путь к проекту>
-
Для сборки для сборки библиотеки используйте make:
make
Тесты для утилит можно запустить с помощью следующих команд:
make testЧтобы сгенерировать отчет по покрытию, выполните команду
make gcov_report