readLinearVarDouble method

double readLinearVarDouble({
  1. bool signed = true,
  2. int maxBits = 64,
  3. int maxDecimal = 8,
})

Implementation

double readLinearVarDouble(
    {bool signed = true, int maxBits = 64, int maxDecimal = 8}) {
  double sign = signed
      ? !readBit()
          ? -1.0
          : 1.0
      : 1.0;
  double base = readLinearVarInt(signed: false, maxBits: maxBits).toDouble();
  int exponent =
      readLinearVarInt(signed: false, maxBits: getBitsNeeded(maxDecimal));
  int decimal = readLinearVarInt(
      signed: false, maxBits: getMaxBitsNeededForDigits(maxDecimal));
  return double.parse((sign * (base + (decimal / pow(10, exponent))))
      .toStringAsFixed(maxDecimal));
}