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