Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

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 по тематическим разделам со ссылками на все статьи.