readDouble method

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

Implementation

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