我正在从Excel文件中读取代表价格的列。 (这些行在循环中)。
dynamic tempPrice = (range.Cells[i, 15] as Excel.Range).Value2;
float price = (tempPrice == null) ? 0 : (float)tempPrice;
有三种可能的情况:
在第三种情况下(破坏了我的代码),如何才能获得该数字并将其转换为浮动?
答案 0 :(得分:2)
您可以使用此代码
float.Parse(tempPrice , NumberStyles.AllowCurrencySymbol | NumberStyles.Number);
答案 1 :(得分:1)
当您尝试解析值时,您应该始终首先验证是否可以在解析之前解析它。这样做,您可以在运行时避免任何类型的错误。
以下是你如何做到的(你可以在那里找到类似的方式:https://social.msdn.microsoft.com/Forums/vstudio/en-US/701df7da-17d8-41b5-b2d2-94b2be9c0191/floattryparse)
if(float.TryParse(tempPrice,NumberStyles.AllowCurrencySymbol, out value)
{
Console.WriteLine("Converted '{0}' to {1}.", tempPrice, value);
}
希望它可以帮到你!
答案 2 :(得分:0)
你可以这样做
float price;
if(!Single.TryParse(Regex.Replace(tempPrice, "\D+$", ""), out price)) {
price = 0;
}
// if it doesn't enter the condition, then price will have the parsed float value.