logo JSON BinPack


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 |
+------+------+