Hi @stahl
This is just really bad coding practice. Try this:
float accel[3];
byte buff[6];
// buff is filled with bytes from i2c device
// let's say the values are the following
buff[3] = 255;
buff[2] = 219;
// create float from the two bytes
int16_t temp = (buff[3]<<8) | buff[2]; //form a signed 16-bit number
accel[0] = (float)temp;