# Function format

Format a value of any type into a string.


## Syntax

```js
math.format(value)
math.format(value, options)
math.format(value, precision)
math.format(value, fn)
```

### Where

 - `value: *`
   The value to be formatted
 - `options: Object`
   An object with formatting options. Available options:
   - `notation: String`
     Number notation. Choose from:
     - 'fixed'
       Always use regular number notation.
       For example '123.40' and '14000000'
     - 'exponential'
       Always use exponential notation.
       For example '1.234e+2' and '1.4e+7'
     - 'auto' (default)
       Regular number notation for numbers having an absolute value between
       `lower` and `upper` bounds, and uses exponential notation elsewhere.
       Lower bound is included, upper bound is excluded.
       For example '123.4' and '1.4e7'.
   - `precision: Number`
     A number between 0 and 16 to round the digits of the number. In case
     of notations 'exponential' and 'auto', `precision` defines the total
     number of significant digits returned and is undefined by default.
     In case of notation 'fixed', `precision` defines the number of
     significant digits after the decimal point, and is 0 by default.
   - `exponential: Object`
     An object containing two parameters, {Number} lower and {Number} upper,
     used by notation 'auto' to determine when to return exponential
     notation. Default values are `lower=1e-3` and `upper=1e5`. Only
     applicable for notation `auto`.
- `fn: Function`
  A custom formatting function. Can be used to override the built-in notations.
  Function `fn` is called with `value` as parameter and must return a string.
  Is useful for example to format all values inside a matrix in a particular way.

### Parameters

Parameter | Type | Description
--------- | ---- | -----------
`value` | * | Value to be stringified
`options` | Object &#124; Function &#124; Number | Formatting options

### Returns

Type | Description
---- | -----------
String | The formatted value


## Examples

```js
math.format(6.4);                                        // returns '6.4'
math.format(1240000);                                    // returns '1.24e6'
math.format(1/3);                                        // returns '0.3333333333333333'
math.format(1/3, 3);                                     // returns '0.333'
math.format(21385, 2);                                   // returns '21000'
math.format(12.071, {notation: 'fixed'});                // returns '12'
math.format(2.3,    {notation: 'fixed', precision: 2});  // returns '2.30'
math.format(52.8,   {notation: 'exponential'});          // returns '5.28e+1'
```


## See also

[print](print.md)


<!-- Note: This file is automatically generated from source code comments. Changes made in this file will be overridden. -->
