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

Математические операторы

В табл. 3.7 приведены условные обозначения шести базовых математических операций.

Примечание
Результат стандартного деления (/) всегда относится к типу Double, даже в случае де-ления без остатка. Результат целочисленного деления (\) всегда относится к типу Integer. Это означает, что при работе с типами Decimal и Integer вам придется часто использовать функции преобразования
.

Таблица 3.7. Математические операции.

Оператор Операция
+ Сложение
- Вычитание (и обозначение отрицательных чисел)
/ Деление (преобразование к Double – не может вызвать исключение DivideByZero; см. главу 7)
\ Целочисленное деление (без преобразования – может вызвать исключение DivideByZero)
* Умножение
^ Возведение в степень

Чтобы лучше разобраться в разных типах деления, можно воспользоваться методом .NET GetType. В командах вывода (таких как WriteLine) этот метод возвращает имя типа в строковом представлении. Рассмотрим следующую программу:

Module Modulel
Sub Main()
Console.WriteLine((4 / 2).GetType())
Console. ReadLine()
End Sub
End Module

В консольном окне выводится строка:

System.Double

Примечание
Возможности метода GetType не ограничиваются простым выводом имени – в частности, он используется в процессе рефлексии. Механизм рефлексии описан в главе 4
.

Ниже приведен пример ситуации, в которой необходимо учитывать тип значения, возвращаемого оператором деления. Перед нами простая (но нерабочая) версия программы, преобразующей температуру по Цельсию в температуру по Фаренгейту. В выделенной строке отсутствует суффикс @, преобразующий результат деления к типу Decimal:

Option Strict On
Module Modulel Sub Main()
Dim cdeg As Decimal
Console.. Writer Enter the degrees in centigrade…")
cdeg=CDec(Console.ReadLine())
Dim fdeg As Decimal
fdeg = (((9 / 5) * cdeg) + 32)
Console.WriteLine(cdeg & " is " & fdeg & " degrees Fahrenheit.")
Console. ReadLine()
End Sub
End Module
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.