# Method `/()

- Method
**`/**

`mixed`

**`/(**`object`

`arg1`

,`mixed`

`arg2`

**)**

`mixed`

**`/(**`mixed`

`arg1`

,`object`

`arg2`

**)**

`array`

(`string`

)**`/(**`string`

`arg1`

,`int`

`arg2`

**)**

`array`

(`string`

)**`/(**`string`

`arg1`

,`float`

`arg2`

**)**

`array`

(`array`

)**`/(**`array`

`arg1`

,`int`

`arg2`

**)**

`array`

(`array`

)**`/(**`array`

`arg1`

,`float`

`arg2`

**)**

`array`

(`string`

)**`/(**`string`

`arg1`

,`string`

`arg2`

**)**

`array`

(`array`

)**`/(**`array`

`arg1`

,`array`

`arg2`

**)**

`float`

**`/(**`float`

`arg1`

,`int`

|`float`

`arg2`

**)**

`float`

**`/(**`int`

`arg1`

,`float`

`arg2`

**)**

`int`

**`/(**`int`

`arg1`

,`int`

`arg2`

**)**

`mixed`

**`/(**`mixed`

`arg1`

,`mixed`

`arg2`

,`mixed`

...`extras`

**)**- Description
Division/split.

Every expression with the

`/`

operator becomes a call to this function, i.e.`a/b`

is the same as`predef::`/(a,b)`

.- Returns
If there are more than two arguments, the result will be

``/(`/(`

,`arg1`

`arg2), @`

`extras).`

If

`arg1`

is an object that implements lfun::`/(), that function will be called with`arg2`

as the single argument.If

`arg2`

is an object that implements lfun::``/(), that function will be called with`arg1`

as the single argument.Otherwise the result will be as follows:

`arg1`

can have any of the following types:`string`

`arg2`

can have any of the following types:`int`

|`float`

The result will be and array of

`arg1`

split in segments of length`arg2`

. If`arg2`

is negative the splitting will start from the end of`arg1`

.`string`

The result will be an array of

`arg1`

split at each occurrence of`arg2`

. Note that the segments that matched against`arg2`

will not be in the result.`array`

`arg2`

can have any of the following types:`int`

|`float`

The result will be and array of

`arg1`

split in segments of length`arg2`

. If`arg2`

is negative the splitting will start from the end of`arg1`

.`array`

The result will be an array of

`arg1`

split at each occurrence of`arg2`

. Note that the elements that matched against`arg2`

will not be in the result.`float`

|`int`

The result will be

/`arg1`

`arg2. If both arguments are int, the result will be truncated to an int. Otherwise the result will be a float.`

- Note
Unlike in some languages, the function f(x) = x/n (x and n integers) behaves in a well-defined way and is always rounded down. When you increase x, f(x) will increase with one for each n:th increment. For all x, (x + n) / n = x/n + 1; crossing zero is not special. This also means that / and % are compatible, so that a = b*(a/b) + a%b for all a and b.

- See also