This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.

For information on migrating to InterSystems IRIS, see How to Migrate to InterSystems IRIS, available on the WRC Distributions page (login required).

# SDIV

Divides two numeric strings.

## Synopsis

```SDIV(numstr1,numstr2)
```

### Arguments

 numstr1 The dividend. An expression that resolves to a number or numeric string. numstr2 The divisor. An expression that resolves to a non-zero numeric or numeric string.

## Description

The SDIV function divides numstr1 by numstr2 and returns the quotient. The two numeric values can be expressed as either numbers or as strings. Leading plus signs and leading and trailing zeros are ignored. A string is parsed as a number until a non-numeric character is encountered. Thus “7dwarves” is parsed as 7. Non-numeric strings and null strings are parsed as 0.

Attempting to divide by zero generates a <DIVIDE> error, ending execution of the function and invoking an error trap handler, if available.

For compatibility, a third numeric argument is accepted, but ignored.

### Arithmetic Operations

• To perform arithmetic operations on numeric strings, use the SADD, SSUB, SMUL, and SDIV functions.

• To perform arithmetic operations on floating point numbers, use the FADD, FSUB, FMUL, and FDIV functions, or use the standard arithmetic operators.

• To perform integer division, use the DIV function. To perform modulo division, use the MOD function.

• To perform arithmetic operations on corresponding elements of dynamic arrays, use the ADDS, SUBS, MULS, DIVS, and MODS functions.

• To perform numeric comparison operations, use the SCMP function, or use the standard comparison operators.

## Examples

The following examples use the SDIV function to divide a numeric string by another numeric string. All of these examples return 2.333333333:

```PRINT SDIV(7,3)
PRINT SDIV("7","3")
PRINT SDIV("+7.00","003")
PRINT SDIV("7dwarves","3wishes")```

All of the following examples return 0:

```PRINT SDIV(0,7)
PRINT SDIV("","0")
PRINT SDIV("seven","3")```

All of the following examples generate a <DIVIDE> error:

```PRINT SDIV(7,0)
PRINT SDIV("7","")
PRINT SDIV("7","three")```