Sending variable over Virtual Wire

This gives "can't convert float to float"
So how do you send a variable using Virtual Wire??

I don't think that that is the correct error message that you got.

The key to how to send a variable using Virtual Wire is in the function call itself:

vw_send((uint8_t *)msg, strlen(msg));

The strlen function expects a string as an argument. A string is a NULL terminated array of chars.

char msg[24];
sprintf(msg, "%f", tempC);
vw_send((uint8_t *)msg, strlen(msg));

Unfortunately, sprintf on the Arduino doesn't support the %f format specifier. So, you need to approach the problem slightly differently. Separate the value to be sent into its integral and fractional parts:

int tempC1 = (int)tempC;
int tempC2 = (int)(tempC - tempC1) * 100; // For two decimal points
char msg[24];
sprintf(msg, "%i.%i", tempC1,tempC2);
vw_send((uint8_t *)msg, strlen(msg));