Convert an XFL floating point into an integer (floor)

Concepts

Behaviour

  • Left shift (multiply by 10) the XFL by the number of specified decimal places
  • Convert the resulting XFL to an integer, discarding any remainder
  • Return the integer

Definition

int64_t float_int (
    int64_t float1,
    uint32_t decimal_places,
  	uint32_t absolute
);

Example

int64_t drops =
    float_int(xrpbalance, 6, 0);

Parameters

NameTypeDescription
float1int64_tAn XFL floating point enclosing number representing the first operand to the addition
decimal_placesuint32_tThe number of places to shift the decimal to the right before computing the floor of the floating point.
absoluteuint32_tIf 1 also take the absolute of the value before returning it.

📘

Hint

Negative return values are reserved for error codes. Therefore if you need to execute this function against a negative XFL you should use absolute = 1

Return Code

TypeDescription
int64_tThe computed positive integer

If negative, an error:
INVALID_FLOAT
- one of the supplied parameters was not a valid XFL enclosing number

INVALID_ARGUMENT
- attempted to specify more than 15 decimal places.

CANT_RETURN_NEGATIVE
- attempted to return a negative integer but this is not allowed, use absolute = 1