﻿ ﻿
﻿

"\" - Arithmetic Integer Division Operation

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

﻿

Here are some detail rules about the arithmetic operation - integer division:

• Arithmetic integer division operation uses the integer division operator: "\"
• Arithmetic integer division 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.
• If an operand is not an integer, it will be rounded into an integer. If the rounding process fails, the whole operation will fail.
• The Boolean subtype is considered as a numeric subtype in an integer division 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 integer division operation. "Empty" represents a numeric value of 0.
• When a String value is used in an integer division operation, it will be parsed into a Long value. If the parsing process fails, the integer division operation will raise the "Type mismatch" runtime error.
• The operation will fail, if the second operand is a 0. Dividing by 0 is mathematically impossible.
• The returning value is the result of the first operand divided by the second operand with the decimal fraction part removed from the result.
• The subtype of the returning value is Integer or Long determined by the returning value range and subtypes of operands.

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

```<html>
<body>
<!-- integer_division_operation.html
-->
<pre>
<script language="vbscript">
document.writeln("21\7=" & (21\7) & " : " & TypeName(21\7))
document.writeln("20.6\7=" & (20.6\7) & " : " & TypeName(20.6\7))
document.writeln("24\7=" & (24\7) & " : " & TypeName(24\7))
document.writeln("24\6.6=" & (24\6.6) & " : " & TypeName(24\6.6))
document.writeln("24\6.4=" & (24\6.4) & " : " & TypeName(24\6.4))
document.writeln("3\777777=" & (3\777777) & " : " _
& TypeName(3\777777))
document.writeln("3\9.99=" & (3\9.99) & " : " & TypeName(3\9.99))
document.writeln("3.33\9.99=" & (3.33\9.99) & " : " & TypeName(3.33\9.99))
'   document.writeln("3\333.333e200=" & (3\333.333e200) & " : " _
'      & TypeName(3\333.333e200))
document.writeln("3\""7""=" & (3\"7") & " : " & TypeName(3\"7"))
'  document.writeln("3\""7Hello""=" & (3\"7Hello") & " : " _
'     & TypeName(3\"7Hello"))
document.writeln("3\True=" & (3\True) & " : " & TypeName(3\True))
'   document.writeln("3\False=" & (3\False) & " : " _
'      & TypeName(3\False))
document.writeln("False\True=" & (False\True) & " : " _
& TypeName(False\True))
document.writeln("Empty\3=" & (Empty\3) & " : " _
& TypeName(Empty\3))
</script>
</pre>
</body>
</html>
```

Here is the output of this VBScript example script:

```21\7=3 : Integer
20.6\7=3 : Long
24\7=3 : Integer
24\6.6=3 : Long
24\6.4=4 : Long
3\777777=0 : Long
3\9.99=0 : Long
3.33\9.99=0 : Long
3\"7"=0 : Long
3\True=-3 : Integer
False\True=0 : Double
Empty\3=0 : Integer
```

The output confirms some of arithmetic integer division operation rules:

• Return values from all tests are Integer or Double values .
• "20.6\7=3 : Long" shows that the first operand is rounded up from 20.6 to 21.
• "24\6.6=3 : Long" shows that the second operand is rounded up from 6.6 to 7.
• "24\6.4=4 : Long" shows that the first operand is rounded down from 6.4 to 6.
• The statement on (3\333.333e200) is commented out, because the second operand could not be rounded to an integer - out of the Double value range.
• The statement on (3\False) is commented out, because dividing by 0 is not allowed.

﻿

﻿ ﻿