## Unit * [new Unit([value], [name])](#new_Unit_new) * _instance_ * [.valueOf](#Unit+valueOf) ⇒ string * [.clone()](#Unit+clone) ⇒ Unit * [._isDerived()](#Unit+_isDerived) ⇒ boolean * [.hasBase(base)](#Unit+hasBase) * [.equalBase(other)](#Unit+equalBase) ⇒ boolean * [.equals(other)](#Unit+equals) ⇒ boolean * [.multiply(other)](#Unit+multiply) ⇒ Unit * [.divide(other)](#Unit+divide) ⇒ Unit * [.pow(p)](#Unit+pow) ⇒ Unit * [.abs(x)](#Unit+abs) ⇒ Unit * [.to(valuelessUnit)](#Unit+to) ⇒ Unit * [.toNumber(valuelessUnit)](#Unit+toNumber) ⇒ number * [.toNumeric(valuelessUnit)](#Unit+toNumeric) ⇒ number | BigNumber | Fraction * [.toString()](#Unit+toString) ⇒ string * [.toJSON()](#Unit+toJSON) ⇒ Object * [.formatUnits()](#Unit+formatUnits) ⇒ string * [.format([options])](#Unit+format) ⇒ string * _static_ * [.parse(str)](#Unit.parse) ⇒ Unit * [.isValuelessUnit(name)](#Unit.isValuelessUnit) ⇒ boolean * [.fromJSON(json)](#Unit.fromJSON) ⇒ Unit ### new Unit([value], [name]) A unit can be constructed in the following ways: ```js const a = new Unit(value, name) const b = new Unit(null, name) const c = Unit.parse(str) ``` Example usage: ```js const a = new Unit(5, 'cm') // 50 mm const b = Unit.parse('23 kg') // 23 kg const c = math.in(a, new Unit(null, 'm') // 0.05 m const d = new Unit(9.81, "m/s^2") // 9.81 m/s^2 ``` | Param | Type | Description | | --- | --- | --- | | [value] | number | BigNumber | Fraction | Complex | boolean | A value like 5.2 | | [name] | string | A unit name like "cm" or "inch", or a derived unit of the form: "u1[^ex1] [u2[^ex2] ...] [/ u3[^ex3] [u4[^ex4]]]", such as "kg m^2/s^2", where each unit appearing after the forward slash is taken to be in the denominator. "kg m^2 s^-2" is a synonym and is also acceptable. Any of the units can include a prefix. | ### unit.valueOf ⇒ string Returns the string representation of the unit. **Kind**: instance property of Unit ### unit.clone() ⇒ Unit create a copy of this unit **Kind**: instance method of Unit **Returns**: Unit - Returns a cloned version of the unit ### unit._isDerived() ⇒ boolean Return whether the unit is derived (such as m/s, or cm^2, but not N) **Kind**: instance method of Unit **Returns**: boolean - True if the unit is derived ### unit.hasBase(base) check if this unit has given base unit If this unit is a derived unit, this will ALWAYS return false, since by definition base units are not derived. **Kind**: instance method of Unit | Param | Type | | --- | --- | | base | BASE_UNITS | STRING | undefined | ### unit.equalBase(other) ⇒ boolean Check if this unit has a base or bases equal to another base or bases For derived units, the exponent on each base also must match **Kind**: instance method of Unit **Returns**: boolean - true if equal base | Param | Type | | --- | --- | | other | Unit | ### unit.equals(other) ⇒ boolean Check if this unit equals another unit **Kind**: instance method of Unit **Returns**: boolean - true if both units are equal | Param | Type | | --- | --- | | other | Unit | ### unit.multiply(other) ⇒ Unit Multiply this unit with another one **Kind**: instance method of Unit **Returns**: Unit - product of this unit and the other unit | Param | Type | | --- | --- | | other | Unit | ### unit.divide(other) ⇒ Unit Divide this unit by another one **Kind**: instance method of Unit **Returns**: Unit - result of dividing this unit by the other unit | Param | Type | | --- | --- | | other | Unit | ### unit.pow(p) ⇒ Unit Calculate the power of a unit **Kind**: instance method of Unit **Returns**: Unit - The result: this^p | Param | Type | | --- | --- | | p | number | Fraction | BigNumber | ### unit.abs(x) ⇒ Unit Calculate the absolute value of a unit **Kind**: instance method of Unit **Returns**: Unit - The result: |x|, absolute value of x | Param | Type | | --- | --- | | x | number | Fraction | BigNumber | ### unit.to(valuelessUnit) ⇒ Unit Convert the unit to a specific unit name. **Kind**: instance method of Unit **Returns**: Unit - Returns a clone of the unit with a fixed prefix and unit. | Param | Type | Description | | --- | --- | --- | | valuelessUnit | string | Unit | A unit without value. Can have prefix, like "cm" | ### unit.toNumber(valuelessUnit) ⇒ number Return the value of the unit when represented with given valueless unit **Kind**: instance method of Unit **Returns**: number - Returns the unit value as number. | Param | Type | Description | | --- | --- | --- | | valuelessUnit | string | Unit | For example 'cm' or 'inch' | ### unit.toNumeric(valuelessUnit) ⇒ number | BigNumber | Fraction Return the value of the unit in the original numeric type **Kind**: instance method of Unit **Returns**: number | BigNumber | Fraction - Returns the unit value | Param | Type | Description | | --- | --- | --- | | valuelessUnit | string | Unit | For example 'cm' or 'inch' | ### unit.toString() ⇒ string Get a string representation of the unit. **Kind**: instance method of Unit ### unit.toJSON() ⇒ Object Get a JSON representation of the unit **Kind**: instance method of Unit **Returns**: Object - Returns a JSON object structured as: `{"mathjs": "Unit", "value": 2, "unit": "cm", "fixPrefix": false}` ### unit.formatUnits() ⇒ string Get a string representation of the units of this Unit, without the value. **Kind**: instance method of Unit ### unit.format([options]) ⇒ string Get a string representation of the Unit, with optional formatting options. **Kind**: instance method of Unit | Param | Type | Description | | --- | --- | --- | | [options] | Object | number | function | Formatting options. See lib/utils/number:format for a description of the available options. | ### Unit.parse(str) ⇒ Unit Parse a string into a unit. The value of the unit is parsed as number, BigNumber, or Fraction depending on the math.js config setting `number`. Throws an exception if the provided string does not contain a valid unit or cannot be parsed. **Kind**: static method of Unit **Returns**: Unit - unit | Param | Type | Description | | --- | --- | --- | | str | string | A string like "5.2 inch", "4e2 cm/s^2" | ### Unit.isValuelessUnit(name) ⇒ boolean Test if the given expression is a unit. The unit can have a prefix but cannot have a value. **Kind**: static method of Unit **Returns**: boolean - true if the given string is a unit | Param | Type | Description | | --- | --- | --- | | name | string | A string to be tested whether it is a value less unit. The unit can have prefix, like "cm" | ### Unit.fromJSON(json) ⇒ Unit Instantiate a Unit from a JSON object **Kind**: static method of Unit | Param | Type | Description | | --- | --- | --- | | json | Object | A JSON object structured as: `{"mathjs": "Unit", "value": 2, "unit": "cm", "fixPrefix": false}` |