bytesToFloat64 static method

double bytesToFloat64(
  1. Uint8List bytes, {
  2. ByteOrder byteOrder = ByteOrder.bigEndian,
})

Convert bytes to 64-bit double (Float64/Double).

Parameters:

Returns: 64-bit floating point number

Implementation

static double bytesToFloat64(Uint8List bytes, {ByteOrder byteOrder = ByteOrder.bigEndian}) {
  if (bytes.length < 8) {
    throw ArgumentError('Requires at least 8 bytes for Float64');
  }
  final data = ByteData.sublistView(bytes);
  if (byteOrder == ByteOrder.bigEndian) {
    return data.getFloat64(0, Endian.big);
  } else {
    // Swap all 4 words for little endian
    final result = ByteData(8);
    for (int i = 0; i < 4; i++) {
      result.setUint16(i * 2, data.getUint16((3 - i) * 2, Endian.big), Endian.big);
    }
    return result.getFloat64(0, Endian.big);
  }
}