我想在销售中打印价值

时间:2010-09-09 03:21:54

标签: c#

我想打印用户输入的销售额时间值.10。我的第一个问题是我想存储一个用户输入销售额的值,然后按.10然后打印销售价值。我运行程序我得到两行一个是进入另一个的销售额是.5。

        const double COMMRATE = 0.10;

        string inputstring;
        double sales =5;
        char response;
        Console.Write("Do you want to Calculate Sales A or B or E...");
        inputstring = Console.ReadLine();
        response = Convert.ToChar(inputstring);
        while (response == 'A') 
        {

            Console.WriteLine("Enter Sales", sales.ToString("C"));
            sales = sales * COMMRATE;
            inputstring = Console.ReadLine();
            response = Convert.ToChar(inputstring);
        }

3 个答案:

答案 0 :(得分:0)

这是你想要的吗?

    const double COMMRATE = 0.10;

    string inputstring;
    double sales;
    char response;
    Console.Write("Do you want to Calculate Sales A or B or E...");
    inputstring = Console.ReadLine();
    response = Convert.ToChar(inputstring);
    while (response == 'A') 
    {
        Console.WriteLine("Enter Sales");
        inputstring = Console.ReadLine();
        sales = Double.Parse(inputstring);
        Console.WriteLine("Sales = " & sales);
        Console.WriteLine("Commission = " & sales * COMMRATE);
    }

答案 1 :(得分:0)

您的.5即将到来,因为您已将销售的默认值设置为5,并且5 * 0.1 = 0.5。

但为什么会这样呢?让我们拆开你的循环:

  1. 它要求用户输入销售额。第二个参数被忽略,因为“Enter Sales”没有格式字符串占位符。它不执行任何形式的行读取。
  2. 不要求输入,它会将销售额乘以佣金率并将其存储到销售。
  3. 现在要求用户输入
  4. 它会立即完全按照书面形式(销售量输入行)吐出来。)
  5. 您实际需要做的是第二个Console.ReadLine()获取销售额的字符串,然后使用Double.ParseDouble()来获取输入的销售额。将您的COMMRATE相乘并打印出来然后再次给出“你想要计算......”的问题,然后使用其中的响应来决定是否继续循环 - 当前,响应永远不会得到已修改,因此您创建了一个无限循环。

    不幸的是,你甚至没有真正接近正确的代码。你的循环看起来应该更像

    while (response == 'A'){
        Console.WriteLine("Enter Sales");
        string salesStr = Console.ReadLine();
        Console.WriteLine(Double.Parse(salesStr) * COMMRATE);
        Console.WriteLine("Enter A to continue, anything else to quit");
        response = Convert.ToChar(Console.ReadLine());
    }
    

    ...这应该让你开始让你的程序做你想做的事。

答案 2 :(得分:0)

我很难辨别出你究竟在问什么。

如果要打印值乘以COMMRATE,那么您应该将计算放在write语句之上。

sales = sales * COMMRATE;
Console.WriteLine("Enter Sales", sales.ToString("C"));

虽然既然你说要存储用户输入的值,那么打印它的时间可能是COMMRATE,你应该使用类似的东西

double calculatedSales = sales * COMMRATE
Console.WriteLine("Enter Sales", calculatedSales.ToString("C"));

这样您就不会重新定义原始销售额