Arduino Sketch Compile Error: Trying to Concatenate Float with String
You cannot use sprintf() to format a float into a string on the Arduino.

Not only is the format of the command wrong, but sprintf on the Arduino does not support floats.

There is a function dtostrf() which converts a float into a character array.  You can use it like:

float temperature = 85.4;
char temp[10];
String tempAsString;
String jsonData;

dtostrf(temperature,1,2,temp);
tempAsString = String(temp);

jsonData = "{'version':'1.0.0', 'datastreams':[{'id':'" +
    datastream1 + "', 'current_value':'" + tempAsString + "'}]}\n";


The format of the dtostrf function is:

dtostrf(value, width, precision, output);


where value is the float value you wish to convert, width is the minimum number of characters to display before the decimal point (padding with spaces as needed), precision is the number of decimal places, and output is the character array to put the results in.