As fp64lib is an add-on library, getting data into the float64_t datatype and out of it is a key. The following will not work:
float64_t x = 1.0;
float64_t y = (float64_t) 3.141;
float64_t z = 10;
The above statements will all load some data into x, y, and z – but it will definitely not be 1.0, 3.141 or 10! Instead, use the following code that will work correctly:
float64_t x = fp64_sd(1.0);
float64_t y = fp64_sd(3.141);
float64_t z = fp64_uint32_to_float64(10);
fp64lib provides quite a number of functions to convert data to all native C data types: more...
|convert to float64_t||convert from float64_t|
|long|| fp64_int32_to_float64() |
*For these data types, no special routine was needed to implement, as the compiler automatically extends (“coerces”) the smaller data type into a signed/unsigned long. So basically the following two lines are identical:
float64_t x = fp64_int32_to_float64( 17 );
float64_t x = fp64_int32_to_float64( (long) 17 );
So you can go with the short version.