Шаг 79 - Оператор +

Возвращает сумму двух чисел.

результат = выражение1+выражение2

Параметры
результат
Обязательный; любая числовая переменная.
выражение1
Обязательный; любое expression.
выражение2
Обязательный; любое выражение.

Замечания
Несмотря на то, что допускается использование оператора + для слияния строковых значений, рекомендуется во избежание возможной путаницы и необходимости дополнительных описаний в программе использовать для слияния строк оператор конкатенации &.
Если по крайней мере один из операндов не принадлежит к типу Variant, действуют следующие правила:

Операнды								Операция
Оба выражения имеют числовые типы данных (Byte, Boolean, 
Integer, Long, Single, Double, Date, Currency или Decimal)		Сложение.
Оба выражения имеют тип String					Слияние строк.
Одно выражение имеет числовой тип данных, а другое тип 
Variant (за исключением значения Null).				Сложение.
Одно выражение имеет тип String , а другое тип Variant 
(за исключением значения Null).					Слияние строк.
Одно выражение имеет тип Variant и содержит значение Empty.		результат получает значение второго операнда.
Одно выражение имеет числовой тип данных, а другое 
тип String.							Возникает ошибка несогласования типов.
Оба выражения имеют значения Null					результат имеет значение Null.

Если оба операнда являются выражениями типа Variant, действуют следующие правила:

Операнды										Операция
Оба выражения типа Variant являются числовыми.					Сложение.
Оба выражения типа Variant являются строковыми.					Слияние строк.
Одно из выражений типа Variant является числовым, а другое строковым.			Сложение.

В простых операциях сложения с участием только операндов с числовыми типами результат обычно имеет тип данных слагаемого с максимальной точностью. В порядке возрастания точности следуют типы Byte, Integer, Long, Single, Double, Currency и Decimal. Из этого правила существуют такие исключения:

Операция									результат
Сложение чисел типа Single и Long.						Double.
результат должен получить значение подтипа Long, Single 
или Date типа Variant, выходящее за рамки допустимых для 
этих типов диапазонов значений.						Преобразуется к подтипу Double.
результат должен получить значение подтипа Byte типа 
Variant, выходящее за рамки допустимых для этого типа 
диапазона значений.							Преобразуется к подтипу Integer.
результат должен получить значение подтипа Integer типа 
Variant, выходящее за рамки допустимых для этого типа 
диапазона значений.							Преобразуется к подтипу Long.
Значение типа Date складывается со значением любого типа.			Date

Если один или оба операнда является выражением со значением Null, то результат имеет значение Null. Если оба операнда имеют значение Empty, результат имеет тип Integer. Если значение Empty имеет только один из операндов, результат получает значение второго операнда.

Точность результатов операций сложения и вычитания может отличаться от точности результатов операции умножения.

Пример
В данном примере демонстрируется использование оператора + для суммирования чисел. Оператор + позволяет также выполнять слияние строковых значений, однако, во избежание неопределенности рекомендуется выполнять эту операцию только с помощью оператора &. Если один из операндов содержит числовое значение, а второй строковое, то оператор + выполняет операцию сложения. Если оба операнда содержат строковые значения, выполняется слияние строк (конкатенация).

Dim MyNumber, Var1, Var2
MyNumber = 2 + 2		' Возвращает 4.
MyNumber = 4257.04 + 98112	' Возвращает 102369.04.

Var1 = "34": Var2 = 6		' Инициализирует переменные разных типов.
MyNumber = Var1 + Var2		' Возвращает 40.

Var1 = "34": Var2 = "6"		' Инициализирует строковые переменные.
MyNumber = Var1 + Var2		' Возвращает "346" (слияние строк)

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.