Математические операторы
В табл. 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