2020-05-08 03:24:40 -04:00
|
|
|
_section: FixedNumber @<FixedNumber>
|
2019-08-21 01:53:47 -04:00
|
|
|
|
2020-02-17 17:56:13 -05:00
|
|
|
A **FixedNumber** is a fixed-width (in bits) number with an internal
|
|
|
|
base-10 divisor, which allows it to represent a decimal fractional
|
|
|
|
component.
|
2019-08-21 01:53:47 -04:00
|
|
|
|
|
|
|
_subsection: Creating Instances
|
|
|
|
|
|
|
|
The FixedNumber constructor cannot be called directly. There are several
|
|
|
|
static methods for creating a FixedNumber.
|
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_property: FixedNumber.from(value [ , format = "fixed" ] ) => [[FixedNumber]] @SRC<bignumber:FixedNumber.from>
|
2019-08-21 01:53:47 -04:00
|
|
|
Returns an instance of a **FixedNumber** for //value// as a //format//.
|
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_property: FixedNumber.fromBytes(aBytesLike [ , format = "fixed" ] ) => [[FixedNumber]] @SRC<bignumber>
|
2019-08-21 01:53:47 -04:00
|
|
|
Returns an instance of a **FixedNumber** for //value// as a //format//.
|
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_property: FixedNumber.fromString(value [ , format = "fixed" ] ) => [[FixedNumber]] @SRC<bignumber:FixedNumber.fromString>
|
2019-08-21 01:53:47 -04:00
|
|
|
Returns an instance of a **FixedNumber** for //value// as a //format//. The //value// must
|
|
|
|
not contain more decimals than the //format// permits.
|
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_property: FixedNumber.fromValue(value [ , decimals = 0 [ , format = "fixed" ] ] ) => [[FixedNumber]] @SRC<bignumber:FixedNumber.fromValue>
|
2019-08-21 01:53:47 -04:00
|
|
|
Returns an instance of a **FixedNumber** for //value// with //decimals// as a //format//.
|
|
|
|
|
|
|
|
|
|
|
|
_subsection: Properties
|
|
|
|
|
|
|
|
_property: fixednumber.format
|
2020-05-08 03:24:40 -04:00
|
|
|
The [FixedFormat](FixedFormat) of //fixednumber//.
|
2019-08-21 01:53:47 -04:00
|
|
|
|
|
|
|
|
|
|
|
_subsection: Methods
|
|
|
|
|
|
|
|
_heading: Math Operations
|
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_property: fixednumber.addUnsafe(otherValue) => [[FixedNumber]] @SRC<bignumber/fixednumber>
|
2019-08-21 01:53:47 -04:00
|
|
|
Returns a new FixedNumber with the value of //fixedvalue// **+** //otherValue//.
|
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_property: fixednumber.subUnsafe(otherValue) => [[FixedNumber]] @SRC<bignumber/fixednumber>
|
|
|
|
Returns a new FixedNumber with the value of //fixedvalue// **-** //otherValue//.
|
2019-08-21 01:53:47 -04:00
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_property: fixednumber.mulUnsafe(otherValue) => [[FixedNumber]] @SRC<bignumber/fixednumber>
|
2019-08-21 01:53:47 -04:00
|
|
|
Returns a new FixedNumber with the value of //fixedvalue// **×** //otherValue//.
|
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_property: fixednumber.divUnsafe(otherValue) => [[FixedNumber]] @SRC<bignumber/fixednumber>
|
|
|
|
Returns a new FixedNumber with the value of //fixedvalue// **÷** //otherValue//.
|
2019-08-21 01:53:47 -04:00
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_property: fixednumber.round([ decimals = 0 ]) => [[FixedNumber]] @SRC<bignumber/fixednumber>
|
2019-08-21 01:53:47 -04:00
|
|
|
Returns a new FixedNumber with the value of //fixedvalue// rounded to //decimals//.
|
|
|
|
|
|
|
|
|
2020-07-03 01:44:17 -04:00
|
|
|
_heading: Comparison and Equivalence
|
|
|
|
|
|
|
|
_property: FixedNumber.isZero() => boolean @SRC<bignumber/fixednumber:FixedNumber.isZero>
|
|
|
|
Returns true if and only if the value of //FixedNumber// is zero.
|
|
|
|
|
|
|
|
|
2019-08-21 01:53:47 -04:00
|
|
|
_heading: Conversion
|
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_property: fixednumber.toFormat(format) => [[FixedNumber]] @SRC<bignumber/fixednumber>
|
2019-08-21 01:53:47 -04:00
|
|
|
Returns a new FixedNumber with the value of //fixedvalue// with //format//.
|
|
|
|
|
2020-01-10 01:01:00 -05:00
|
|
|
_property: fixednumber.toHexString() => string @SRC<bignumber/fixednumber>
|
2020-05-08 03:24:40 -04:00
|
|
|
Returns a [[HexString]] representation of //fixednumber//.
|
2019-08-21 01:53:47 -04:00
|
|
|
|
2020-01-10 01:01:00 -05:00
|
|
|
_property: fixednumber.toString() => string @SRC<bignumber/fixednumber>
|
2019-08-21 01:53:47 -04:00
|
|
|
Returns a string representation of //fixednumber//.
|
|
|
|
|
2020-01-10 01:01:00 -05:00
|
|
|
_property: fixednumber.toUnsafeFloat() => float @SRC<bignumber/fixednumber>
|
2019-08-21 01:53:47 -04:00
|
|
|
Returns a floating-point JavaScript number value of //fixednumber//.
|
|
|
|
Due to rounding in JavaScript numbers, the value is only approximate.
|
|
|
|
|
|
|
|
|
|
|
|
_heading: Inspection
|
|
|
|
|
2020-01-10 01:01:00 -05:00
|
|
|
_property: FixedNumber.isFixedNumber(value) => boolean @SRC<bignumber/fixednumber>
|
2019-08-21 01:53:47 -04:00
|
|
|
Returns true if and only if //value// is a **FixedNumber**.
|
|
|
|
|
2020-02-17 17:56:13 -05:00
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_subsection: FixedFormat @<FixedFormat>
|
2020-02-17 17:56:13 -05:00
|
|
|
|
|
|
|
A **FixedFormat** is a simple object which represents a decimal
|
|
|
|
(base-10) Fixed-Point data representation. Usually using this
|
2020-11-22 23:03:50 -05:00
|
|
|
class directly is unnecessary, as passing in a [[FixedFormat--strings]]
|
2020-05-08 03:24:40 -04:00
|
|
|
directly into the [[FixedNumber]] will automatically create this.
|
2020-02-17 17:56:13 -05:00
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_heading: Format Strings @<FixedFormat--strings>
|
2020-02-17 17:56:13 -05:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2020-10-03 13:30:15 -03:00
|
|
|
The width must be congruent to 0 mod 8 (i.e. ``(width % 8) == 0``) and no
|
2020-02-17 17:56:13 -05:00
|
|
|
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
|
2020-04-16 22:25:05 -04:00
|
|
|
- **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``
|
2020-02-17 17:56:13 -05:00
|
|
|
|
|
|
|
_heading: Creating Instances
|
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_property: FixedFormat.from(value = "fixed128x18") => [[FixedFormat]] @<FixedNumber-from> @SRC<bignumber/fixednumber:FixedFormat.from>
|
2020-02-17 17:56:13 -05:00
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
Returns a new instance of a **FixedFormat** defined by //value//. Any valid [[FixedFormat--strings]]
|
2020-02-17 17:56:13 -05:00
|
|
|
may be passed in as well as any object which has any of ``signed``, ``width`` and ``decimals``
|
2020-05-08 03:24:40 -04:00
|
|
|
defined, including a [[FixedFormat]] object.
|
2020-02-17 17:56:13 -05:00
|
|
|
|
|
|
|
_heading: Properties
|
|
|
|
|
|
|
|
_property: fixedFormat.signed => boolean
|
|
|
|
The signed-ness of //fixedFormat//, true if negative values are supported.
|
|
|
|
|
|
|
|
_property: fixedFormat.width => number
|
|
|
|
The width (in bits) of //fixedFormat//.
|
|
|
|
|
|
|
|
_property: fixedFormat.decimals => number
|
|
|
|
The number of decimal points of //fixedFormat//.
|
|
|
|
|
|
|
|
_property: fixedFormat.name => string
|
|
|
|
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.
|
|
|
|
|
|
|
|
_definition: **//"fixed"//**
|
|
|
|
A shorthand for ``fixed128x80``.
|
|
|
|
|