Числовые типы данных
Обновлен: Ноябрь 2007
Visual Basic применяет несколько числовых типов данных для обработки чисел в различном представлении. К целочисленным типам относятся только целые числа (положительные, отрицательные и ноль), а к нецелочисленным — числа с целой и дробной частями.
Таблицу, в которой приведено сравнение типов данных Visual Basic, см. в разделе Сводка типов данных (Visual Basic).
Целочисленные типы
К целочисленным типам данных относятся только числа без дробной части.
Целочисленные типы данных со знаком: Тип данных SByte (Visual Basic) (8-разрядные), Тип данных Short (Visual Basic) (16-разрядные), Тип данных Integer (Visual Basic) (32-разрядные) и Тип данных Long (Visual Basic) (64-разрядные). Если переменная всегда хранит целые числа, а не дроби, следует объявить ее как один из этих типов.
Целочисленные типы без знака: Тип данных Byte (Visual Basic) (8-разрядные), Тип данных UShort (Visual Basic) (16-разрядные), Тип данных UInteger (32-разрядные) и Тип данных ULong (Visual Basic) (64-разрядные). Если переменная содержит двоичные данные или данные неизвестного типа, следует объявить ее как один из этих типов.
Производительность
Арифметические операции выполняются с целочисленными типами быстрее, чем с данными других типов. Быстрее всего они выполняются с типами Integer и UInteger в Visual Basic.
Длинные целые
При необходимости хранить целое число больше, чем может вместить тип данных Integer, можно использовать тип данных Long вместо него. Переменные Long могут содержать числа в диапазоне от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807. Операции с переменными Long выполняются немного медленнее, чем с переменными Integer.
Если необходимо использовать значения еще большего размера, можно использовать Тип данных Decimal (Visual Basic). Если не используются никакие десятичные знаки, можно хранить числа в диапазоне от -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, ShortInteger и Long). С точки зрения производительности, каждый тип без знака является таким же эффективным, как и соответствующий ему тип со знаком. В частности, UInteger и Integer являются наиболее эффективными из всех типов простейших числовых данных.
Нецелые числовые типы
К нецелочисленным типам данных относятся числа с целой и дробной частями.
Нецелыми числовыми типами данных являются Decimal (128-разрядные с фиксированной запятой), Тип данных Single (Visual Basic) (32-разрядные с плавающей запятой) и Тип данных Double (Visual Basic) (64-разрядные с плавающей запятой). Все они относятся к типам со знаком. Если переменная может содержать дробную часть, следует использовать один из этих типов.
Decimal не является типом данных с плавающей запятой. Числа типа Decimal имеют двоичное целое значение и масштабный коэффициент целых чисел, который определяет, какая часть значения является десятичной дробью.
Числа с плавающей запятой (Single и Double) имеют большие диапазоны, чем числа Decimal, но при их использовании могут возникать ошибки округления. Типы с плавающей запятой поддерживают меньшее количество значащих цифр после запятой, чем Decimal, но могут представлять значения большей величины.
Нецеочисленные значения могут быть выражены как mmmEeee, в которых mmm является мантиссой (значащими цифрами), а eee — экспонентой (степенью 10). К наибольшим положительным значениям нецелочисленных типов относятся 7.9228162514264337593543950335E+28 для Decimal, 3.4028235E+38 для Single и 1.79769313486231570E+308 для Double.
Производительность
Double является наиболее эффективным из дробных типов данных, поскольку процессоры на современных платформах выполняют операции с числами с плавающей запятой с двойной точностью. Однако операции с типом Double имеют меньшую производительность по сравнению с целочисленными типами, такими как Integer.
Малые величины
Для чисел с наименьшей возможной величиной (стремящейся к 0), переменные Double могут содержать число – 4,94065645841246544E - 324 для отрицательных значений - и 4,94065645841246544E 324 для положительных значений.
Малые дробные числа
Если вам не нужен полный диапазон типа данных Double, можно использовать тип Single, который может содержать числа с плавающей запятой от -3,4028235E+38 до 3,4028235E+38. Наименьшая величина для переменных Single является -1,401298E-45 для отрицательных значений и 1,401298E-45 для положительных значений. Если имеется большое количество переменных, которые содержат малые числа с плавающей запятой, среда CLR может иногда более эффективно хранить переменные Single и снизить потребление памяти.
См. также
Задачи
Устранение неполадок, связанных с типами данных
Практическое руководство. Хранение целых чисел в переменной
Практическое руководство. Хранение дробей в переменной
Практическое руководство. Хранение наибольшего возможного значения в переменной
Практическое руководство. Оптимизация хранения положительных целых чисел с беззнаковыми типами
Практическое руководство. Вызов функции Windows, принимающей значение беззнакового типа
Практическое руководство. Хранение наиболее значимых цифр в переменной
Практическое руководство. Хранение денежных значений в переменной