---
name: "bson_decimal128_t"
section: "3"
platform: "linux"
package: "libbson-doc"
version: "1.30.4-1+deb13u3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/bson_decimal128_t"
---

# 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\_t**s, 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

2009-present, MongoDB, Inc.
