First of all, you should settle on using "float" instead of "double" on Arduino's. If the question is about how to convert a "double" to an array of bytes and transmit them, then use memcpy:
double d = 3.141;
unsigned char b[sizeof(double)];
//Transmit
memcpy(b, &d, sizeof(double));
for (byte i = 0; i < sizeof(double); i++) someThing.write(b[i]);
//Receive
for (byte i = 0; i < sizeof(double); i++) b[i] = someThing.read();
memcpy(&d, b, sizeof(double));