我想打印用户输入的销售额时间值.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);
}
答案 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。
但为什么会这样呢?让我们拆开你的循环:
您实际需要做的是第二个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"));
这样您就不会重新定义原始销售额