This documentation is archived and is not being maintained.

* Operator (Visual Basic)

Multiplies two numbers.

number1 * number2




Required. Any numeric expression.


Required. Any numeric expression.

The result is the product of number1 and number2.

All numeric types, including the unsigned and floating-point types and Decimal.

The data type of the result depends on the types of the operands. The following table shows how the data type of the result is determined.

Operand data types

Result data type

Both expressions are integral data types (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong)

A numeric data type appropriate for the data types of number1 and number2. See the "Integer Arithmetic" tables in Data Types of Operator Results (Visual Basic).

Both expressions are Decimal


Both expressions are Single


Either expression is a floating-point data type (Single or Double) but not both Single (note Decimal is not a floating-point data type)


If an expression evaluates to Nothing, it is treated as zero.


The * operator can be overloaded, which means that a class or structure can redefine its behavior when an operand has the type of that class or structure. If your code uses this operator on such a class or structure, be sure you understand its redefined behavior. For more information, see Operator Procedures (Visual Basic).

This example uses the * operator to multiply two numbers. The result is the product of the two operands.

Dim testValue As Double
testValue = 2 * 2
' The preceding statement sets testValue to 4.
testValue = 459.35 * 334.9
' The preceding statement sets testValue to 153836.315.