Is your double value in its own field, or is it in the partitionkey or rowkey field? PartitionKey and RowKey are always strings.
I just created a simple test which writes and reads a row with a double field, and the values are preserved just fine. I modified the sample SmsMessage class from Bill Lodin's SMS code via msdev.com training (I took the int Delay field and changed it to a float, and renamed it to MyDouble for clarification):
public class SmsMessage: TableServiceEntity
{
public double MyDouble { get; set; }
public SmsMessage(string destination, string message, double myDouble)
{
PartitionKey = destination;
RowKey = message;
MyDouble = myDouble;
}
public SmsMessage()
: base("", string.Format("{0:d10}", DateTime.Now.Ticks))
{
}
}
I then write to the SmsMessageTable:
smsTable.AddObject("SmsMessages", new SmsMessage(destination, message, myDouble));
smsTable.SaveChanges();
I view this in the table storage explorer, and my doubles are how I entered them (e.g. 1.2345).
I then retrieve with a simple linq query, for a given username in the partition key:
var results = from m in smsTable.SmsMessages
where m.PartitionKey.Equals(txtDestination.Text.Trim())
select m;
My double values are all preserved and strongly typed as doubles.