float_set

Create a float from an exponent and mantissa

Concepts

Behaviour

  • Compute an XFL (xls17) floating point from the provided exponent and mantissa

  • Return that XFL as an int64_t

Definition

C

int64_t float_set (
    int32_t exponent,
    int64_t mantissa
);

Example

C

int64_t small_amount =
  float_set(-81, 1);

Parameters

Name
Type
Description

exponent

int32_t

An exponent in the range -96 to 80

mantissa

int64_t

A mantissa. If negative then the sign of the float is negative.

🚧Caution

When setting a mantissa that is greater or fewer than 16 decimal digits the exponent will be adjusted to ensure the mantissa is exactly 16 digits. This adjustment may result in an INVALID_FLOAT in some circumstances.

📘Special case

XFL canonical 0 is also 0 in the enclosing number. Thus there is never a need to call float_set(0,0);

Return Code

Type
Description

int64_t

The XFL (xls17) enclosing number If negative, an error: INVALID_FLOAT - The adjustment of the mantissa to 16 digits produced an under or overflow.

Last updated