# Complex Numbers
> Create a complex number.
## Usage
```javascript
var complex = require( '@stdlib/complex/cmplx' );
```
#### complex( real, imag\[, dtype] )
Creates a complex number, where `real` and `imag` are the **real** and **imaginary** components, respectively.
```javascript
var z = complex( 5.0, 3.0 );
// returns
```
By default, the function returns a [128-bit complex number][@stdlib/complex/float64]. To specify an alternative underlying data type, set the `dtype` parameter to one of the following:
- [`'float64'`][@stdlib/complex/float64]: https://www.npmjs.com/package/@stdlib/complex/tree/main/float64
- [`'float32'`][@stdlib/complex/float32]: https://www.npmjs.com/package/@stdlib/complex/tree/main/float32
```javascript
var z = complex( 5.0, 3.0, 'float32' );
// returns
```
## Examples
```javascript
var randu = require( '@stdlib/random/base/randu' );
var round = require( '@stdlib/math/base/special/round' );
var complex = require( '@stdlib/complex/cmplx' );
var re;
var im;
var z;
var i;
for ( i = 0; i < 100; i++ ) {
re = round( (randu()*100.0) - 50.0 );
im = round( (randu()*100.0) - 50.0 );
z = complex( re, im, 'float64' );
console.log( z.toString() );
}
```
[@stdlib/complex/float64]: https://www.npmjs.com/package/@stdlib/complex/tree/main/float64
[@stdlib/complex/float32]: https://www.npmjs.com/package/@stdlib/complex/tree/main/float32