VBA Excel. Тип данных Decimal

Тип данных Decimal используется в VBA Excel только внутри типа Variant. Максимальное общее количество значащих цифр до запятой и после нее равно 29.

Определение типа данных Decimal

Decimal – это числовой тип данных, предназначенный для проведения вычислений, требующих высокой точности и не допускающих автоматического перевода в экспоненциальную форму. Он поддерживает до 29 значащих цифр в числе, независимо от положения запятой.

Decimal не является типом данных с плавающей запятой, в отличие от типов Single и Double. Он содержит целое двоичное значение вместе с битом знака и целочисленным коэффициентом масштабирования, который указывает, какая часть значения представляет дробную часть.

Decimal является самым медленным по производительности числовым типом данных, но числа в его формате имеют более точное представление в памяти, чем типы с плавающей запятой.

В настоящее время в VBA Excel нет отдельного типа данных Decimal, но он доступен внутри типа Variant. Для получения числа типа Decimal и присвоения его переменной типа Variant используется функция CDec. Длинное число перед преобразованием в Decimal должно быть в текстовом формате.

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

Диапазон чисел типа Decimal

  • Максимальное значение числа без дробных разрядов: +/-79228162514264337593543950335 (+/-7,9228162514264337593543950335E+28).
  • Наибольшее значение числа с 28 десятичными знаками: +/-7,9228162514264337593543950335.
  • Наименьшее ненулевое значение: +/-0,0000000000000000000000000001 (+/-1E-28).

Тип данных Decimal может использоваться в финансовой сфере и при научных вычислениях. На практике, для большинства расчетов, применяются менее точные числовые типы данных.

Пример кода в VBA Excel

Присвоим с помощью кода VBA Excel максимальные по длине числа типа данных Decimal переменным, проведем математическую операцию с числами и запишем ее результат в ячейки рабочего листа с преобразованием значения в текст и без преобразования:

Что записалось в переменные, смотрите в окне Locals:

Работа с длинными числами типа данных Decimal

Обратите внимание, что в ячейке A2 значение типа Decimal было автоматически преобразовано в экспоненциальный формат с обрезанием числа. После обратного преобразования его в Decimal, на месте обрезанной части отображены нули.

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег <pre> и по окончании кода </pre>.