Следите за новостями GitVerse в нашем телеграм-канале

Decimal

Форк
0

5 месяцев назад
5 месяцев назад
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 Вы можете самостоятельно в настройках Вашего браузера.