来自string的Int32上的System.FormatException

时间:2016-05-02 16:26:27

标签: c# exception

当我输入region时,我收到System.FormatException。尽快告诉我解决方案。

        double price;
        int region;
        string p;
        Console.Write("Enter the total price of items : ");
        price= Console.Read();
        Console.WriteLine("Select the your region.");
        Console.WriteLine("1 : Pakistan");
        Console.WriteLine("2 : UK");
        Console.WriteLine("3 : Cortia");
        p= Console.ReadLine();
        region = Convert.ToInt32(p);

2 个答案:

答案 0 :(得分:3)

您的价格是双重类型,但您已尝试将控制台输入的值指定为字符串,将其转换为double将解决问题,还使用TryParse进行转换,这将在转换期间捕获所有异常。

double price;
int region;
Console.Write("Enter the total price of items : ");
double.TryParse(Console.ReadLine(), out price);
Console.WriteLine("Select the your region.");
Console.WriteLine("1 : Pakistan");
Console.WriteLine("2 : UK");
Console.WriteLine("3 : Cortia");
int.TryParse(Console.ReadLine(), out region);

答案 1 :(得分:2)

您可以使用TryParse,检查是否可以在输入之前将输入转换为int值。

您也可以在价格中使用TryParse。

private void setupListViewAdapter() {
    adapter = new ClienteSearchListAdapter(search_cli.this, R.layout.clientesearch, cliente);
    ListView atomPaysListView = (ListView)findViewById(R.id.EnterPays_atomPaysList);
    atomPaysListView.setAdapter(adapter);
}