---
layout: default
---
Function equal #
Test whether two values are equal.
The function tests whether the relative difference between x and y is
smaller than the configured relTol and absTol. The function cannot be used to
compare values smaller than approximately 2.22e-16.
For matrices, the function is evaluated element wise.
In case of complex numbers, x.re must equal y.re, and x.im must equal y.im.
Values `null` and `undefined` are compared strictly, thus `null` is only
equal to `null` and nothing else, and `undefined` is only equal to
`undefined` and nothing else. Strings are compared by their numerical value.
Syntax #
```js
math.equal(x, y)
```
Parameters #
Parameter | Type | Description
--------- | ---- | -----------
`x` | number | BigNumber | bigint | boolean | Complex | Unit | string | Array | Matrix | First value to compare
`y` | number | BigNumber | bigint | boolean | Complex | Unit | string | Array | Matrix | Second value to compare
Returns #
Type | Description
---- | -----------
boolean | Array | Matrix | Returns true when the compared values are equal, else returns false
Throws #
Type | Description
---- | -----------
Examples #
```js
math.equal(2 + 2, 3) // returns false
math.equal(2 + 2, 4) // returns true
const a = math.unit('50 cm')
const b = math.unit('5 m')
math.equal(a, b) // returns true
const c = [2, 5, 1]
const d = [2, 7, 1]
math.equal(c, d) // returns [true, false, true]
math.deepEqual(c, d) // returns false
math.equal("1000", "1e3") // returns true
math.equal(0, null) // returns false
```
See also #
[unequal](unequal.html),
[smaller](smaller.html),
[smallerEq](smallerEq.html),
[larger](larger.html),
[largerEq](largerEq.html),
[compare](compare.html),
[deepEqual](deepEqual.html),
[equalText](equalText.html)