货币转换器帮助c#

时间:2013-08-27 22:16:59

标签: c# currency

我只是这个的初学者,我正在制作货币转换器,输入并验证整数,并输入和验证汇率。我在如何根据先前输入的两个验证值计算汇率方面遇到问题。这是我到目前为止所做的代码,这也是一个控制台应用程序。

    static void Main(string[] args)
    {
        wholeNumber();
        exhangeNumber();


    }

    private static void exhangeNumber()
    {
        double evalue;
        bool valid;

        Console.WriteLine("please enter an exchange rate");

        do
        {
            try
            {
                evalue = double.Parse(Console.ReadLine());
                Console.WriteLine("the exchange rate entered is: {0:F2}", evalue);
                valid = true;
            }
            catch
            {
                Console.WriteLine("invalid Exchange rate please try again");
                valid = false;
            }
        }
        while (valid == false);
        Console.ReadLine();

    }





    private static void wholeNumber()
    {
        int ivalue;
        bool valid;


        Console.WriteLine("please enter a whole number");
        do
        {
            try
            {
                ivalue = int.Parse(Console.ReadLine());
                Console.WriteLine("the valuse you have entered is : {0:F0}", ivalue);
                valid = true;
            }
            catch
            {
                Console.WriteLine("this is not a whole number please try again");
                valid = false;
            }


        } while (valid == false);

    }
}

}

1 个答案:

答案 0 :(得分:4)

您永远不会将值返回主程序

private static double exhangeNumber()
private static double wholeNumber()

在这些的底部,而不是分别使用控制台readline,return ivalue/evalue;。然后在主要你可以做

Console.WriteLine(exchangeNumber() * wholeNumber());
Console.ReadLine();

正如史蒂夫在评论中所说,您可能希望使用TryParse代替Parse来获取值,因为它会为您提供额外的错误处理,如果您的用户输入不是,则会提供默认值这是一个有效数字,对于一个双倍,这是0.0 ..除此之外,TryParse还将返回一个关于解析是否成功的布尔值

例如:

 evalue = double.Parse(Console.ReadLine()); 
   is the same as (but improved)
 double.TryParse(Console.ReadLine(), out evalue);

更好

 while(!double.TryParse(Console.ReadLine(), out evalue);
{
    Console.WriteLine("this is not a whole number please try again");
} 
Console.WriteLine("the valuse you have entered is : {0:F0}", evalue);