繁体   English   中英

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

[英]System.FormatException: Input string was not in a correct format

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

这应该可以,但是我缺少明显的东西。 每当我输入double时,都会出现错误:System.FormatException:输入字符串的格式不正确。 请注意,“ unitPrice”被声明为双精度型。

指定双精度值时,可能是因为使用了错误的逗号分隔符号,甚至出现了其他错误。 无论如何,在这种情况下,您必须使用Double.TryParse()方法,该方法在异常方面很安全,并且允许指定格式提供程序,基本上可以使用区域性。

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

TryParse方法类似于Parse(String,NumberStyles,IFormatProvider)方法,但是如果转换失败,则此方法不会引发异常。 如果转换成功,则返回值为true,并且将result参数设置为转换的结果。 如果转换失败,则返回值为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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM