System.FormatException:输入字符串的格式不正确

时间:2011-09-23 17:35:25

标签: c# visual-studio-2010 formatexception

    private void ReadUnitPrice()
    {
        Console.Write("Enter the unit gross price: ");
        unitPrice = double.Parse(Console.ReadLine());
    }

这应该有用,但我遗漏了一些明显的东西。每当我输入一个double时,它就会给出错误:System.FormatException:输入字符串的格式不正确。 请注意,'unitPrice'被声明为double。

1 个答案:

答案 0 :(得分:6)

可能是您使用了错误的逗号分隔符号,甚至在指定double值时发出了其他错误。 无论如何,在这种情况下,您必须使用Double.TryParse()方法,该方法在例外方面是安全的,并允许指定格式提供者,基本上使用文化。

public static bool TryParse(
    string s,
    NumberStyles style,
    IFormatProvider provider,
    out double result
)
  

TryParse方法就像Parse(String,NumberStyles,   IFormatProvider)方法,除了这个方法不抛出一个   转换失败时出现异常。如果转换成功,那么   返回值为true,结果参数设置为结果   转换。如果转换失败,则返回值为false   result参数设置为零。

编辑:回答评论

if(!double.TryParse(Console.ReadLine(), out unitPrice))
{
    // parse error
}else
{
   // all is ok, unitPrice contains valid double value
}

你也可以尝试:

double.TryParse(Console.ReadLine(), 
                NumberStyle.Float, 
                CultureInfo.CurrentCulture, 
                out unitPrice))