Числовые типы данных (Visual Basic)
Visual Basic предоставляет несколько числовых типов данных для обработки чисел в различных представлениях. Целочисленные типы представляют только целые числа (положительные, отрицательные и нулевые), а неинтегральные типы представляют числа как целыми, так и дробными частями.
Таблица, показывающая параллельное сравнение типов данных Visual Basic, см. в разделе "Типы данных".
Целочисленные числовые типы
Целочисленные типы данных — это те , которые представляют только числа без дробных частей.
Подписанные целочисленные типы данных : SByte Data Type (8-bit), Short Data Type (16-bit), Integer Data Type (32-bit) и Long Data Type (64-bit). Если переменная всегда хранит целые числа, а не дробные числа, объявите его как один из этих типов.
Неподписанные целочисленные типы : байтовый тип данных (8-разрядная версия), тип данных UShort (16-разрядная версия), тип данных UInteger (32-разрядная версия) и тип данных ULong (64-разрядная версия). Если переменная содержит двоичные данные или данные неизвестного характера, объявите его как один из этих типов.
Производительность
Арифметические операции выполняются быстрее с целыми типами, чем с другими типами данных. Они являются самыми быстрыми Integer
с помощью типов UInteger
и типов в Visual Basic.
Большие целые числа
Если необходимо сохранить целое число, чем Integer
тип данных, можно использовать Long
вместо него. Long
переменные могут содержать числа от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807. Операции с Long
немного медленнее, чем с Integer
.
Если вам нужны даже большие значения, можно использовать десятичный тип данных. Номера можно хранить от -79,228,162,514,264,337,593,543,950,335 до 79 228 162 514 264 337 593 543 950 335 в переменной Decimal
, если не использовать десятичные разряды. Однако операции с Decimal
числами значительно медленнее, чем с любым другим числовым типом данных.
Небольшие целые числа
Если вам не нужен полный Integer
диапазон типа данных, можно использовать Short
тип данных, который может содержать целые числа от –32 768 до 32 767. Для наименьшего целочисленного диапазона SByte
тип данных содержит целые числа от -128 до 127. Если у вас есть очень большое количество переменных, в которых хранятся небольшие целые числа, среда CLR иногда Short
SByte
может хранить ваши и переменные более эффективно и сохранять потребление памяти. Однако операции с Short
и SByte
несколько медленнее, чем с Integer
.
Целые числа без знака
Если вы знаете, что переменная никогда не должна содержать отрицательное число, можно использовать неподписанные типыByte
, UShort
и UInteger
ULong
. Каждый из этих типов данных может содержать положительное целое число в два раза больше, чем соответствующий подписанный тип (SByte
, , Short
Integer
иLong
). С точки зрения производительности каждый неподписанный тип точно так же эффективен, как соответствующий подписанный тип. В частности, разделяется Integer
различием в том, UInteger
чтобы быть наиболее эффективным из всех простых числовых типов данных.
Неинтегральные числовые типы
Неинтегральные типы данных — это те , которые представляют числа с целыми и дробными частями.
Неинтегральные числовые типы данных : Decimal
(128-разрядная фиксированная точка), один тип данных (32-разрядная плавающая точка) и двойный тип данных (64-разрядная плавающая точка). Они являются всеми подписанными типами. Если переменная может содержать дробь, объявите ее как один из этих типов.
Decimal
не является типом данных с плавающей запятой. Decimal
числа имеют двоичное целочисленное значение и целочисленный коэффициент масштабирования, указывающий, какая часть значения является десятичной дроби.
Переменные можно использовать Decimal
для значений денег. Преимуществом является точность значений. Тип Double
данных быстрее и требует меньше памяти, но при этом возникают ошибки округления. Тип Decimal
данных сохраняет полную точность до 28 десятичных разрядов.
Числа с плавающей запятой (Single
и Double
) имеют более крупные диапазоны, чем Decimal
числа, но могут быть подвержены ошибкам округления. Типы с плавающей запятой поддерживают меньше значимых цифр, чем Decimal
могут представлять значения большей величины.
Неинтегральные значения числа могут быть выражены как mmmEeee, в котором ммм является мантисса (значимые цифры) и eee является экспонентом (мощностью 10). Самые высокие положительные значения неинтегральных типов : 7,92281625142643759359393950335035E+28 для Decimal
, 3,4028235E+38 для Single
, а также 1,79769313486231570E+308 для Double
.
Производительность
Double
является наиболее эффективным из дробных типов данных, так как процессоры на текущих платформах выполняют операции с плавающей запятой в двойной точности. Однако операции с Double
не менее быстрыми, как и с целыми типами, такими как Integer
.
Небольшие величины
Для чисел с наименьшей возможной величиной (ближе всего к 0), Double
переменные могут содержать числа меньше -4,9406564584124654E-324 для отрицательных значений и 4,940656484124654E-324 для положительных значений.
Небольшие дробные числа
Если вам не нужен полный диапазон Double
типа данных, можно использовать Single
тип данных, который может содержать числа с плавающей запятой от -3.4028235E+38 до 3.4028235E+38. Наименьшие величины переменных Single
— -1,401298E-45 для отрицательных значений и 1,401298E-45 для положительных значений. Если у вас есть очень большое количество переменных, в которых хранятся небольшие числа с плавающей запятой, среда CLR иногда Single
может хранить переменные более эффективно и сохранять потребление памяти.