Если в состав выражения входят операнды разных типов, то, если возможно, выполняется автоматическое их преобразование к единому типу, а затем выполняется оператор. Правило преобразования: результат имеет тип операнда с большей точностью представления значения, т.е. преобразование не допускает потери информации.
Для языка Basic последовательность преобразования следующая: sbyteàintegeràlongàsingleàdouble. Исключение: если один операнд имеет тип single, второй – тип long, то результат получает тип double. В случае невозможности преобразования к единому типу возникает ошибка: Type mismatch – несогласование типов.
Пример.
dim Operand1 as sbyte, Orerand2 as single, Operand3 as long, Operand4 as double
...................................................................................................................................
Operand1 + Operand2 àsingle
Operand2 + Operand3 àdouble
Operand1 + Operand3 àlong
Operand2 + Operand4 àdouble
Для языка Cсхема автоматических арифметических преобразований аналогична. Исключение: данные floatвсегда преобразуются к типу double с тем, чтобы вычисления выполнялись с максимально возможной точностью.