struct eosio::fixed_point32
Class List > eosio :: fixed_point32
32 bits representation of Fixed Point class. More...
Public Attributes
Type | Name |
---|---|
int32_t | val |
Public Functions
Type | Name |
---|---|
fixed_point32 (const fixed_point32< QR > & r) | |
fixed_point32 (const fixed_point64< QR > & r) | |
fixed_point32 (int32_t param = 0) | |
int32_t | int_part () const |
uint32_t | frac_part () const |
void | print () const |
fixed_point32 & | operator= (const fixed_point32< QR > & r) |
fixed_point32 & | operator= (const fixed_point64< QR > & r) |
fixed_point32<(Q >QR)?Q:QR > | operator+ (const fixed_point32< QR > & r) const |
fixed_point32<(Q >QR)?Q:QR > | operator- (const fixed_point32< QR > & r) const |
fixed_point64< Q+QR > | operator* (const fixed_point32< QR > & r) const |
fixed_point64< Q+32-QR > | operator/ (const fixed_point32< QR > & r) const |
bool | operator== (const fixed_point32< QR > & r) |
bool | operator> (const fixed_point32< QR > & r) |
bool | operator< (const fixed_point32< QR > & r) |
fixed_point32< Q > & | operator= (const fixed_point32< QR > & r) |
fixed_point32< Q > & | operator= (const fixed_point64< QR > & r) |
fixed_point32<(Q >QR)?Q:QR > | operator+ (const fixed_point32< QR > & rhs) const |
fixed_point32<(Q >QR)?Q:QR > | operator- (const fixed_point32< QR > & rhs) const |
Detailed Description
This class is implemented to replace the floating point variables and can resolve floating point undetermenistic related issues Example:
fixed_point32<17> b(9.654);
fixed_point32<18> c = a*b;
fixed_point32<24> d = a+b+c;
fixed_point32<24> e = b/a;
Public Attributes Documentation
variable val
int32_t eosio::fixed_point32< Q >::val;
Value of the fixed point represented as int32_t
Public Functions Documentation
function fixed_point32 (1/3)
template<uint8_t QR>
eosio::fixed_point32< Q >::fixed_point32(
const fixed_point32< QR > & r
)
Construct a new fixed point32 object from another fixed_point32
Parameters:
- r - Another fixed_point32 as source
function fixed_point32 (2/3)
template<uint8_t QR>
eosio::fixed_point32< Q >::fixed_point32(
const fixed_point64< QR > & r
)
Construct a new fixed point32 object from another fixed_point64. It will be truncated.
Parameters:
- r - Another fixed_point32 as source
function fixed_point32 (3/3)
eosio::fixed_point32< Q >::fixed_point32(
int32_t param = 0
)
Construct a new fixed point32 object from int32_t
Parameters:
- v - int32_t representation of the fixed point value
function int_part
int32_t eosio::fixed_point32< Q >::int_part() const
Get the integer part of the 64 bit fixed number
Returns:
Returns integer part of the fixed number
Example:
fixed_point32<18> a(1234.455667)
std::cout << a.int_part(); // Output: 1234
function frac_part
uint32_t eosio::fixed_point32< Q >::frac_part() const
function print
void eosio::fixed_point32< Q >::print() const
Prints the fixed point value
function operator= (1/4)
template<uint8_t QR>
fixed_point32& eosio::fixed_point32< Q >::operator=(
const fixed_point32< QR > & r
)
Assignment operator. Assign fixed_point32 to fixed_point32
Template parameters:
- qr - Precision of the source
Parameters:
- r - Source
Returns:
fixed_point32& - Reference to this object
function operator= (2/4)
template<uint8_t QR>
fixed_point32& eosio::fixed_point32< Q >::operator=(
const fixed_point64< QR > & r
)
Assignment operator. Assign fixed_point64 to fixed_point32
Template parameters:
- qr - Precision of the source
Parameters:
- r - Source
Returns:
fixed_point32& - Reference to this object
function operator+ (1/2)
template<uint8_t QR>
fixed_point32< (Q>QR)?Q:QR > eosio::fixed_point32< Q >::operator+(
const fixed_point32< QR > & r
) const
Addition operator
Template parameters:
- QR - Precision of the second addend
Parameters:
- r - Second addend
Returns:
- The result of addition
function operator- (1/2)
template<uint8_t QR>
fixed_point32< (Q>QR)?Q:QR > eosio::fixed_point32< Q >::operator-(
const fixed_point32< QR > & r
) const
Subtraction operator
Template parameters:
- QR - Precision of the minuend
Parameters:
- r - Minuend
Returns:
- The result of subtraction
function operator*
template<uint8_t QR>
fixed_point64< Q+QR > eosio::fixed_point32< Q >::operator*(
const fixed_point32< QR > & r
) const
Multiplication operator
Template parameters:
- QR - Precision of the multiplier
Parameters:
- r - Multiplier
Returns:
- The result of multiplication
Multiplication operator for fixed_point32. The result goes to fixed_point64
Note:
Number of decimal on result will be sum of number of decimals of lhs and rhs
Example:
fixed_point64<33> result = fixed_point32<0>(131313) / fixed_point32<0>(2323)
function operator/
template<uint8_t QR>
fixed_point64< Q+32-QR > eosio::fixed_point32< Q >::operator/(
const fixed_point32< QR > & r
) const
Division operator
Template parameters:
- QR - Precision of the divisor
Parameters:
- r - Divisor
Returns:
- The result of division
Division of two fixed_point32 result will be stored in fixed_point64 Example:
fixed_point64<33> result = fixed_point32<0>(131313) / fixed_point32<0>(2323)
function operator==
template<uint8_t QR>
bool eosio::fixed_point32< Q >::operator==(
const fixed_point32< QR > & r
)
Equality operator
Template parameters:
- qr - Precision of the source
Parameters:
- r - Source
Returns:
true - if equal
Returns:
false - otherwise
function operator>
template<uint8_t QR>
bool eosio::fixed_point32< Q >::operator>(
const fixed_point32< QR > & r
)
Greater than operator
Template parameters:
- qr - Precision of the source
Parameters:
- r - Source
Returns:
true - if equal
Returns:
false - otherwise
function operator<
template<uint8_t QR>
bool eosio::fixed_point32< Q >::operator<(
const fixed_point32< QR > & r
)
Less than operator
Template parameters:
- qr - Precision of the source
Parameters:
- r - Source
Returns:
true - if equal
Returns:
false - otherwise
function operator= (3/4)
template<uint8_t QR>
fixed_point32<Q>& eosio::fixed_point32< Q >::operator=(
const fixed_point32< QR > & r
)
function operator= (4/4)
template<uint8_t QR>
fixed_point32<Q>& eosio::fixed_point32< Q >::operator=(
const fixed_point64< QR > & r
)
function operator+ (2/2)
template<uint8_t QR>
fixed_point32< (Q>QR)?Q:QR > eosio::fixed_point32< Q >::operator+(
const fixed_point32< QR > & rhs
) const
Addition between two fixed_point32 variables and the result goes to fixed_point32
Note:
Number of decimal on result will be max of decimals of lhs and rhs
function operator- (2/2)
template<uint8_t QR>
fixed_point32< (Q>QR)?Q:QR > eosio::fixed_point32< Q >::operator-(
const fixed_point32< QR > & rhs
) const
Subtraction between two fixed_point32 variables and the result goes to fixed_point32
Note:
Number of decimal on result will be max of decimals of lhs and rhs
The documentation for this class was generated from the following file: libraries/eosiolib/fixedpoint.hpp