Decimal

Форк
0

3 месяца назад
3 месяца назад
README.md

Введение

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

Глава II

Информация

Тип Decimal поддерживает числа в диапазоне от -79,228,162,514,264,337,593,543,950,335 до +79,228,162,514,264,337,593,543,950,335. Он представляет собой структуру данных, которая включает знак, 96-разрядное целое число и коэффициент масштабирования. Это позволяет точно выполнять арифметические операции без значительных ошибок округления.

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

Двоичное представление Decimal реализовано с использованием четырехэлементного массива 32-разрядных знаковых целых чисел (int bits[4]), который хранит:

  • bits[0], bits[1], bits[2]: младшие, средние и старшие 32 бита 96-разрядного целого числа.
  • bits[3]: коэффициент масштабирования и знак числа.

Пример:

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

Арифметические Операторы

Библиотека включает следующие арифметические операторы для работы с Decimal:

  • Сложение (+)
  • Вычитание (-)
  • Умножение (*)
  • Деление (/)

Операторы Сравнения

Также реализованы операторы сравнения для Decimal:

  • Меньше (<)
  • Меньше или равно (<=)
  • Больше (>)
  • Больше или равно (>=)
  • Равно (==)
  • Не равно (!=)

Преобразования

Библиотека поддерживает преобразования Decimal из и в целочисленные (int) и числа с плавающей точкой (float).

Дополнительные Функции

Для удобства работы с Decimal реализованы дополнительные функции, включая округление, отрицание числа, извлечение целой части числа и другие.

Глава III

Часть 1 - Реализация функций библиотеки s21_decimal.h

Проект разработан в соответствии с требованиями:

  • Реализация включает использование структурного программирования и соответствует стандарту C11.
  • Покрытие unit-тестами библиотеки обеспечивает проверку функциональности с использованием библиотеки Check.
  • Проект включает Makefile для сборки библиотеки, unit-тестов и формирования отчета gcov.

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

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.