# FixedNumber

A

**FixedNumber**is a fixed-width (in bits) number with an internal base-10 divisor, which allows it to represent a decimal fractional component.The

**FixedNumber**class is directly imported from The Ethers Project. The complete documentation can be found in the official ethers docs.The FixedNumber constructor cannot be called directly. There are several static methods for creating a FixedNumber.

Returns an instance of a

**FixedNumber**for*value*as a*format*.Returns an instance of a

**FixedNumber**for*value*as a*format*.Returns an instance of a

**FixedNumber**for*value*as a*format*. The*value*must not contain more decimals than the*format*permits.Returns an instance of a

**FixedNumber**for*value*with*decimals*as a*format*.Returns a new FixedNumber with the value of

*fixedvalue***+***otherValue*.Returns a new FixedNumber with the value of

*fixedvalue***-***otherValue*.Returns a new FixedNumber with the value of

*fixedvalue***×***otherValue*.Returns a new FixedNumber with the value of

*fixedvalue***÷***otherValue*.Returns a new FixedNumber with the value of

*fixedvalue*rounded to*decimals*.Returns true if and only if the value of

*FixedNumber*is zero.Returns a new FixedNumber with the value of

*fixedvalue*with*format*.Returns a string representation of

*fixednumber*.Returns a floating-point JavaScript number value of

*fixednumber*. Due to rounding in JavaScript numbers, the value is only approximate.Returns true if and only if

*value*is a**FixedNumber**.A

**FixedFormat**is a simple object which represents a decimal (base-10) Fixed-Point data representation. Usually using this class directly is unnecessary, as passing in a Format Strings directly into the FixedNumber will automatically create this.A format string is composed of three components, including signed-ness, bit-width and number of decimals.

A signed format string begins with

`fixed`

, which an unsigned format string begins with `ufixed`

, followed by the width (in bits) and the number of decimals.The width must be congruent to 0 mod 8 (i.e.

`(width % 8) == 0`

) and no larger than 256 bits and the number of decimals must be no larger than 80.For example:

**fixed128x18**is signed, 128 bits wide and has 18 decimals; this is useful for most purposes**fixed32x0**is signed, 32 bits wide and has 0 decimals; this would be the same as a`int32_t`

in C**ufixed32x0**is unsigned, 32 bits wide and has 0 decimals; this would be the same as a`uint32_t`

in C**fixed**is shorthand for`fixed128x18`

**ufixed**is shorthand for`ufixed128x18`

Returns a new instance of a

**FixedFormat**defined by*value*. Any valid Format Strings may be passed in as well as any object which has any of`signed`

, `width`

and `decimals`

defined, including a FixedFormat object.The signed-ness of

*fixedFormat*, true if negative values are supported.The width (in bits) of

*fixedFormat*.The number of decimal points of

*fixedFormat*.The name of the

*fixedFormat*, which can be used to recreate the format and is the string that the Solidity language uses to represent this format.

*"fixed"*A shorthand for

`fixed128x80`

.Last modified 1yr ago