"+" - Arithmetic Addition Operation

This section provides some detail rules and a tutorial example on how arithmetic addition operation works in VBScript.

Here are some detail rules about the arithmetic operation - Addition:

• Arithmetic addition operation uses the addition operator: "+"
• Arithmetic addition operation requires that at least one of the operands is a numeric subtype: Byte, Integer, Long, Single or Double.
• If an operand is not a numeric subtype, it will be converted into a numeric subtype.
• The Boolean subtype is considered as a numeric subtype in an addition operation. "True" represents a numeric value of -1. "False" represents a numeric value of 0.
• The Empty subtype is considered as a numeric subtype in an addition operation. "Empty" represents a numeric value of 0.
• When a String value is used in an addition operation, it will be parsed into a Double value. If the parsing process fails, the addition operation will raise the "Type mismatch" runtime error.
• The returning value is the numeric sum of the first operand and the second operand.
• The subtype of the returning value is determined by the returning value range and subtypes of operands.

Here is a tutorial example showing you how arithmetic addition operation rules work:

```<html>
<body>
-->
<pre>
<script language="vbscript">
document.writeln("7+7=" & (7+7) & " : " & TypeName(7+7))
document.writeln("7+777777=" & (7+777777) & " : " _
& TypeName(7+777777))
document.writeln("7+9.99=" & (7+9.99) & " : " & TypeName(7+9.99))
document.writeln("7+333.333e200=" & (7+333.333e200) & " : " _
& TypeName(7+333.333e200))
document.writeln("7+""7""=" & (7+"7") & " : " & TypeName(7+"7"))
'  document.writeln("7+""7Hello""=" & (7+"7Hello") & " : " _
'     & TypeName(7+"7Hello"))
document.writeln("7+True=" & (7+True) & " : " & TypeName(7+True))
document.writeln("7+False=" & (7+False) & " : " _
& TypeName(7+False))
document.writeln("True+False=" & (True+False) & " : " _
& TypeName(True+False))
document.writeln("7+Empty=" & (7+Empty) & " : " _
& TypeName(7+Empty))
</script>
</pre>
</body>
</html>
```

Here is the output of this VBScript example script:

```7+7=14 : Integer
7+777777=777784 : Long
7+9.99=16.99 : Double
7+333.333e200=3.33333E+202 : Double
7+"7"=14 : Double
7+True=6 : Integer
7+False=7 : Integer
True+False=-1 : Integer
7+Empty=7 : Integer
```

The output confirms some of arithmetic addition operation rules:

• "7+7=14 : Integer" shows that the result is an Integer value, because the result is small value and both operands are Integer values.
• "7+777777=777784 : Long" shows that the result is a Long value, because the result is large value outside the Integer value range.
• "7+9.99=16.99 : Double" shows that the result is a Double value, because the second operand is a Double value. "9.99" is a Double literal. See the data literal section in the previous chapter.
• "7+"7"=14 : Double" shows that the result is a Double value, because the second operand is a Double value. When a string is parsed into a numeric value, it returns a Double value.
• The statement on (7+"7Hello") is commented out, because string "7Hello" can not parsed into a Double value.
• "True+False=-1 : Integer" shows that VBScript recognizes True as -1 and False as 0.