左侧的变量是浮点数,因此我需要使右侧的项目匹配。但是,它总是告诉我它的格式不正确。
newDvd.Rating=float.Parse(rows["rating"].ToString());
foreach (DataRow rows in row)
{
var newDvd = new DVD();
newDvd.Title = rows["dvd_title"].ToString();
newDvd.Price = Convert.ToDecimal(rows["price"].ToString());
newDvd.Rating = Convert.ToSingle(rows["rating"].ToString());
inventory.Add(newDvd);
}
答案 0 :(得分:1)
使用Parse
代替TryParse
float DvdRating;
if(float.TryParse(rows["rating"].ToString(), out DvdRating))
{
// success! Use DvdRating here
}
If
如果无法解析,将返回false。
Parse 无法解析该值,则抛出异常,而 TryParse 返回一个布尔值,指示其是否成功。
TryParse 不仅在内部try/catch
-整个要点在于,它无例外地实现,因此速度很快。实际上,最有可能实现的方式是内部Parse方法将调用 TryParse ,然后在返回false时引发异常。
简而言之,如果您确定该值将有效,请使用“解析”;否则,请使用“解析”。否则,请使用TryParse。
答案 1 :(得分:0)
首先请确保该值不为null或为空,然后尝试执行此操作
string floatString = "433.34534646";
if(!string.IsNullOrEmpty(floatString))
{
float result = float.Parse(floatString, CultureInfo.InvariantCulture.NumberFormat);
Console.WriteLine(result);
}
输出:433.3453