Иллюстрированный самоучитель по VB.NET


Литералы и их соответствие типам данных - часть 3


  • Double: 8-байтовое вещественное число. Если в числе с десятичной точкой не указан суффикс, по умолчанию оно сохраняется в формате Double. Это связано с тем, что Double работает эффективнее Single; на 32-разрядных процессорах Double является основным типом для выполнения вещественных операций. Признаком типа Double в литералах является суффикс R (или #).

  • Новый тип Decimal пришел на смену старому типу Currency, использовавшемуся в прежних версиях VB. Он используется в ситуациях, когда ошибки округления недопустимы.

    • Decimal: 12-байтовое вещественное число, гарантирующее отсутствие ошибок округления в громадном интервале допустимых значений с 28 значащими цифрами. Формальное определение гласит, что тип Decimal предназначен для хранения чисел с мантиссой в интервале ±79 228 162 514 264 337 593 543 950 335, масштабируемых до произвольного порядка при условии, что количество значащих цифр не превышает 28. Таким образом, наименьшее число, представляемое типом Decimal, равно ±0.0000000000000000000000000001. Признаком типа Decimal в литералах является суффикс D.

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

    Console.WriteLine(12345678 * 4567)

    компилятор выдает ошибку:

    This constant expression produces a value that is not representable in type System.Integer.

    Проблема решается при помощи суффикса типа Long:

    Console.WriteLine(123456781 * 4567)

    Общие методы MaxValue и MinValue, ассоциированные с типом, возвращают соответственно верхнюю и нижнюю границы интервала допустимых значений. Пример:

    Console.WriteLine(Integer.MaxValue)

    В табл. 3.2 собраны данные о соответствии числовых типов VB .NET, типов .NET Framework и их аналогов из VB6 (если они есть).

    Таблица 3.2. Соответствие между числовыми типами




    - Начало -  - Назад -  - Вперед -