You could try, Gauge1.Value = DataConverter.Convert<Double>(dataSocket.Data.Value); (if you are using VS2005) or Gauge1.Value = (Double)DataConverter.Convert(dataSocket.Data.Value, typeof(Double)); (if you are using VS2003)
But, you need to be sure that what you are sending CAN be converted to Double. If you are sending a Double[], then this may not work. However, if you are sending an Int32 or some other primitive type and you want that to be converted to Double, DataConverter will take care of that for you. In any case, you can just see once what dataSocket.Data.Value.GetType() returns, and then change you code to typecast to that type and then get the double value from the typecasted dataSocket.Data.Value.
Are you sure, dataSocket.Data.Value.GetType().ToString() returned System.Int32 and not System.Int32[] ? As I said earlier, if you are not dealing with arrays, then simply let the DataConverter take care of that for you. Gauge1.Value = DataConverter.Convert<Double>(dataSocket.Data.Value);