Try instead of
pPrice = row[col].ToString();
this
float value = (float)row[col];
You are explicitly setting your value to an string, so you cannot assign a float to it.
Also, be shure the column is a float and not a double/decimal, an easy way to know is
Type t = row[col].GetType();
string typeName = t.Name;