Struct FungibleAssetValue
Holds a fungible asset value which holds its Currency together.
Namespace: Libplanet.Assets
Assembly: Libplanet.dll
Syntax
public readonly struct FungibleAssetValue : IEquatable<FungibleAssetValue>, IComparable<FungibleAssetValue>, IComparable, ISerializable
Remarks
It behaves like numbers except for division operator (/) to prevent to forget
to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.
Constructors
| Improve this Doc View SourceFungibleAssetValue(Currency)
Creates a zero value of the currency.
Declaration
public FungibleAssetValue(Currency currency)
Parameters
| Type | Name | Description |
|---|---|---|
| Currency | currency | The currency to create a zero value. |
FungibleAssetValue(Currency, BigInteger, BigInteger)
Creates a value of the currency from the given
majorUnit and minorUnit.
Declaration
public FungibleAssetValue(Currency currency, BigInteger majorUnit, BigInteger minorUnit)
Parameters
| Type | Name | Description |
|---|---|---|
| Currency | currency | The currency to create a value. |
| BigInteger | majorUnit | The major unit of the fungible asset value, i.e., digits before the decimal separator. |
| BigInteger | minorUnit | The minor unit of the fungible asset value, i.e., digits after the decimal separator. |
See Also
| Improve this Doc View SourceFungibleAssetValue(Currency, Int32, BigInteger, BigInteger)
Creates a value of the currency from the given sign, majorUnit and minorUnit.
Declaration
public FungibleAssetValue(Currency currency, int sign, BigInteger majorUnit, BigInteger minorUnit)
Parameters
| Type | Name | Description |
|---|---|---|
| Currency | currency | The currency to create a value. |
| Int32 | sign | Indicates the sign (negative, positive, or zero) of the value.
|
| BigInteger | majorUnit | The major unit of the fungible asset value, i.e., digits before the decimal separator. Must not be negative. |
| BigInteger | minorUnit | The minor unit of the fungible asset value, i.e., digits after the decimal separator. Must not be negative. |
See Also
Fields
| Improve this Doc View SourceCurrency
The currency of the fungible asset.
Declaration
public readonly Currency Currency
Field Value
| Type | Description |
|---|---|
| Currency |
RawValue
The internal representation of the fungible asset.
Declaration
public readonly BigInteger RawValue
Field Value
| Type | Description |
|---|---|
| BigInteger |
Remarks
Since this is an internal representation, this does not guarantee forward compatibility. Therefore, do not depend on this value for permanent uses but only for volatile data.
See Also
Properties
| Improve this Doc View SourceMajorUnit
The major unit of the fungible asset value, i.e., digits before the decimal separator, in absolute value.
Declaration
public readonly BigInteger MajorUnit { get; }
Property Value
| Type | Description |
|---|---|
| BigInteger |
Remarks
It is absolute value, which lacks Sign.
See Also
| Improve this Doc View SourceMinorUnit
The minor unit of the fungible asset value, i.e., digits after the decimal separator, in absolute value.
Declaration
public readonly BigInteger MinorUnit { get; }
Property Value
| Type | Description |
|---|---|
| BigInteger |
Remarks
It is absolute value, which lacks Sign.
See Also
| Improve this Doc View SourceSign
Gets a number that indicates the sign (negative, positive, or zero) of the value.
Declaration
public readonly int Sign { get; }
Property Value
| Type | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Int32 | A number that indicates the sign of the fungible asset value, as shown in the following table:
|
Methods
| Improve this Doc View SourceAbs()
Gets the absolute value.
Removes the negative sign if it's negative. Otherwise does nothing.
Declaration
public readonly FungibleAssetValue Abs()
Returns
| Type | Description |
|---|---|
| FungibleAssetValue | Its absolute value. |
CompareTo(FungibleAssetValue)
Declaration
public readonly int CompareTo(FungibleAssetValue other)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | other |
Returns
| Type | Description |
|---|---|
| Int32 |
CompareTo(Nullable<Object>)
Declaration
public readonly int CompareTo(object? obj)
Parameters
| Type | Name | Description |
|---|---|---|
| Nullable<Object> | obj |
Returns
| Type | Description |
|---|---|
| Int32 |
DivRem(BigInteger)
Divides the value by divisor, and returns a pair of the quotient
and the remainder.
Declaration
public readonly (FungibleAssetValue Quotient, FungibleAssetValue Remainder) DivRem(BigInteger divisor)
Parameters
| Type | Name | Description |
|---|---|---|
| BigInteger | divisor | The number to divide by. |
Returns
| Type | Description |
|---|---|
| (, )<FungibleAssetValue, FungibleAssetValue> | A tuple of the |
DivRem(BigInteger, out FungibleAssetValue)
Divides the value by divisor, returns the quotient, and returns
the remainder in an output parameter.
Declaration
public readonly FungibleAssetValue DivRem(BigInteger divisor, out FungibleAssetValue remainder)
Parameters
| Type | Name | Description |
|---|---|---|
| BigInteger | divisor | The number to divide by. |
| FungibleAssetValue | remainder | When this method returns (without any exception), the remainder
after dividing the value by |
Returns
| Type | Description |
|---|---|
| FungibleAssetValue | The quotient of the division. |
DivRem(FungibleAssetValue)
Divides the value by divisor, and returns a pair of the quotient
and the remainder.
Declaration
public readonly (BigInteger Quotient, FungibleAssetValue Remainder) DivRem(FungibleAssetValue divisor)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | divisor | The value to divide by. |
Returns
| Type | Description |
|---|---|
| (, )<BigInteger, FungibleAssetValue> | A tuple of the |
DivRem(FungibleAssetValue, out FungibleAssetValue)
Divides the value by divisor, returns the quotient, and returns
the remainder in an output parameter.
Declaration
public readonly BigInteger DivRem(FungibleAssetValue divisor, out FungibleAssetValue remainder)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | divisor | The value to divide by. |
| FungibleAssetValue | remainder | When this method returns (without any exception), the remainder
after dividing the value by |
Returns
| Type | Description |
|---|---|
| BigInteger | The quotient of the division. |
Equals(FungibleAssetValue)
Declaration
public readonly bool Equals(FungibleAssetValue other)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | other |
Returns
| Type | Description |
|---|---|
| Boolean |
Equals(Nullable<Object>)
Declaration
public override readonly bool Equals(object? obj)
Parameters
| Type | Name | Description |
|---|---|---|
| Nullable<Object> | obj |
Returns
| Type | Description |
|---|---|
| Boolean |
FromRawValue(Currency, BigInteger)
Restores a value from a rawValue of a currency.
Declaration
public static FungibleAssetValue FromRawValue(Currency currency, BigInteger rawValue)
Parameters
| Type | Name | Description |
|---|---|---|
| Currency | currency | The currency to create a value. |
| BigInteger | rawValue | The RawValue to restore. |
Returns
| Type | Description |
|---|---|
| FungibleAssetValue | The value restored from the given |
See Also
| Improve this Doc View SourceGetHashCode()
Declaration
public override readonly int GetHashCode()
Returns
| Type | Description |
|---|---|
| Int32 |
GetQuantityString(Boolean)
Gets the value quantity without its Currency in
Declaration
public readonly string GetQuantityString(bool minorUnit = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | minorUnit | Whether to show all possible decimal places even if they are zeros. |
Returns
| Type | Description |
|---|---|
| String | A quantity string in decimal system. Consists of an optional sign (minus), digits and an optional decimal separator (period). |
Parse(Currency, String)
Parses a numeric string and returns a corresponding FungibleAssetValue.
Declaration
public static FungibleAssetValue Parse(Currency currency, string value)
Parameters
| Type | Name | Description |
|---|---|---|
| Currency | currency | The currency of the value to parse. |
| String | value | A numeric string to parse. Can consist of digits, plus (+), minus (-), and decimal separator (.). |
Returns
| Type | Description |
|---|---|
| FungibleAssetValue | The parsed asset value. |
ToString()
Declaration
public override readonly string ToString()
Returns
| Type | Description |
|---|---|
| String |
Operators
| Improve this Doc View SourceAddition(FungibleAssetValue, FungibleAssetValue)
Adds two values and returns the result.
Declaration
public static FungibleAssetValue operator +(FungibleAssetValue left, FungibleAssetValue right)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | left | The first value to add. |
| FungibleAssetValue | right | The second value to add. |
Returns
| Type | Description |
|---|---|
| FungibleAssetValue | The sum of |
Equality(FungibleAssetValue, FungibleAssetValue)
Tests if two values are equal.
Declaration
public static bool operator ==(FungibleAssetValue obj, FungibleAssetValue other)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | obj | A value. |
| FungibleAssetValue | other | Another value. |
Returns
| Type | Description |
|---|---|
| Boolean |
|
GreaterThan(FungibleAssetValue, FungibleAssetValue)
Tests if the left operand (obj) is greater than the right operand
(other).
Declaration
public static bool operator>(FungibleAssetValue obj, FungibleAssetValue other)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | obj | The left operand to compare. |
| FungibleAssetValue | other | The right operand to compare. |
Returns
| Type | Description |
|---|---|
| Boolean |
|
GreaterThanOrEqual(FungibleAssetValue, FungibleAssetValue)
Tests if the left operand (obj) is greater than or equal to the right
operand (other).
Declaration
public static bool operator >=(FungibleAssetValue obj, FungibleAssetValue other)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | obj | The left operand to compare. |
| FungibleAssetValue | other | The right operand to compare. |
Returns
| Type | Description |
|---|---|
| Boolean |
|
Inequality(FungibleAssetValue, FungibleAssetValue)
Tests if two values are unequal.
Declaration
public static bool operator !=(FungibleAssetValue obj, FungibleAssetValue other)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | obj | A value. |
| FungibleAssetValue | other | Another value. |
Returns
| Type | Description |
|---|---|
| Boolean |
|
LessThan(FungibleAssetValue, FungibleAssetValue)
Tests if the left operand (obj) is less than the right operand
(other).
Declaration
public static bool operator <(FungibleAssetValue obj, FungibleAssetValue other)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | obj | The left operand to compare. |
| FungibleAssetValue | other | The right operand to compare. |
Returns
| Type | Description |
|---|---|
| Boolean |
|
LessThanOrEqual(FungibleAssetValue, FungibleAssetValue)
Tests if the left operand (obj) is less than or equal to the right
operand (other).
Declaration
public static bool operator <=(FungibleAssetValue obj, FungibleAssetValue other)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | obj | The left operand to compare. |
| FungibleAssetValue | other | The right operand to compare. |
Returns
| Type | Description |
|---|---|
| Boolean |
|
Modulus(FungibleAssetValue, BigInteger)
Divides the value (dividend) by divisor,
and returns the remainder.
Declaration
public static FungibleAssetValue operator %(FungibleAssetValue dividend, BigInteger divisor)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | dividend | The value to be divided. |
| BigInteger | divisor | The number to divide by. |
Returns
| Type | Description |
|---|---|
| FungibleAssetValue | The remainder after dividing |
Modulus(FungibleAssetValue, FungibleAssetValue)
Divides the value (dividend) by divisor,
and returns the remainder.
Declaration
public static FungibleAssetValue operator %(FungibleAssetValue dividend, FungibleAssetValue divisor)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | dividend | The value to be divided. |
| FungibleAssetValue | divisor | The value to divide by. |
Returns
| Type | Description |
|---|---|
| FungibleAssetValue | The remainder after dividing |
Multiply(BigInteger, FungibleAssetValue)
Multiplies left times the right value.
Declaration
public static FungibleAssetValue operator *(BigInteger left, FungibleAssetValue right)
Parameters
| Type | Name | Description |
|---|---|---|
| BigInteger | left | The times to multiply. |
| FungibleAssetValue | right | The value to multiply. |
Returns
| Type | Description |
|---|---|
| FungibleAssetValue | The multiplied value. |
Multiply(FungibleAssetValue, BigInteger)
Multiplies right times the left value.
Declaration
public static FungibleAssetValue operator *(FungibleAssetValue left, BigInteger right)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | left | The value to multiply. |
| BigInteger | right | The times to multiply. |
Returns
| Type | Description |
|---|---|
| FungibleAssetValue | The multiplied value. |
Subtraction(FungibleAssetValue, FungibleAssetValue)
Subtracts the right value from the left value.
Declaration
public static FungibleAssetValue operator -(FungibleAssetValue left, FungibleAssetValue right)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | left | The value to subtract from (the minuend). |
| FungibleAssetValue | right | The value to subtract (the subtrahend). |
Returns
| Type | Description |
|---|---|
| FungibleAssetValue | The result of subtracting |
UnaryNegation(FungibleAssetValue)
Negates a value.
Adds a negative sign to the value if it's positive.
Removes a negative sign from the value if it's already negative.
Does nothing if the value is zero.
Declaration
public static FungibleAssetValue operator -(FungibleAssetValue value)
Parameters
| Type | Name | Description |
|---|---|---|
| FungibleAssetValue | value | A value to negate. |
Returns
| Type | Description |
|---|---|
| FungibleAssetValue | A negated |