writeLinearVarDouble method
void
writeLinearVarDouble(})
Implementation
void writeLinearVarDouble(double value,
{bool signed = true, int maxBits = 64, int maxDecimal = 8}) {
if (signed) {
writeBit(value > 0);
}
writeLinearVarInt(value.truncate().abs(), signed: false, maxBits: maxBits);
double decimal = double.parse(
(value.abs() - value.truncate().abs()).toStringAsFixed(maxDecimal));
int exponent = 0;
while (decimal != decimal.truncate() && exponent < maxDecimal) {
exponent++;
decimal *= 10;
}
writeLinearVarInt(exponent,
signed: false, maxBits: getBitsNeeded(maxDecimal));
writeLinearVarInt(decimal.truncate(),
signed: false, maxBits: getMaxBitsNeededForDigits(maxDecimal));
}