# Encodings: Number

Do you want to help improve these docs? Edit this page on GitHub

`DOUBLE_VARINT_TUPLE`

The encoding consists of a sequence of two integers: The signed integer that results from concatenating the integral part and the decimal part of the number, if any, as a ZigZag-encoded Base-128 64-bit Little Endian variable-length unsigned integer; and the position of the decimal mark from the last digit of the number encoded as a Base-128 64-bit Little Endian variable-length unsigned integer.

### Options

None

### Conditions

None

### Examples

Given the input value 3.14, the encoding results in the variable-length integer 628 (the ZigZag encoding of 314) followed by the variable-length unsigned integer 2 (the number of decimal digits in the number).

```
+------+------+------+
| 0xf4 | 0x04 | 0x02 |
+------+------+------+
```

Real numbers that represent integers are encoded with a decimal mark of zero. Given the input value -5.0, the encoding results in the variable-length integer 9 (the ZigZag encoding of -5) followed by the variable-length unsigned integer 0.

```
+------+------+
| 0x09 | 0x00 |
+------+------+
```