BSON_DECIMAL128_T(3)

BSON Decimal128 Abstraction

SYNOPSIS

            #include <bson/bson.h>

            #define BSON_DECIMAL128_STRING 43
            #define BSON_DECIMAL128_INF "Infinity"
            #define BSON_DECIMAL128_NAN "NaN"

            typedef struct {
            #if BSON_BYTE_ORDER == BSON_LITTLE_ENDIAN
               uint64_t low;
               uint64_t high;
            #elif BSON_BYTE_ORDER == BSON_BIG_ENDIAN
               uint64_t high;
               uint64_t low;
            #endif
            } bson_decimal128_t;

DESCRIPTION

The bson_decimal128_t structure represents the IEEE-754 Decimal128 data type. The type bson_decimal128_t is an aggregate that contains two uint64_ts, named high and low. The declaration and layout order between them depends on the endian order of the target platform: low will always correspond to the low-order bits of the Decimal128 object, while high corresponds to the high-order bits. The bson_decimal128_t always has a size of sixteen (16), and can be bit-cast to/from a _Decimal128.

EXAMPLE

            #include <bson/bson.h>
            #include <stdio.h>

            int
            main (int argc, char *argv[])
            {
               char string[BSON_DECIMAL128_STRING];
               bson_decimal128_t decimal128;

               bson_decimal128_from_string ("100.00", &decimal128);
               bson_decimal128_to_string (&decimal128, string);
               printf ("Decimal128 value: %s\n", string);

               return 0;
            }

AUTHOR
MongoDB, Inc

COPYRIGHT
2017-present, MongoDB, Inc