我想创建一个C#应用程序,输入上周销售的一个销售人员的项目,并计算并显示该销售人员的收入。销售人员每周收到200美元,加上该周总销售额的9%。提供了每个销售人员销售的商品列表及其值后,如何将用户输入转换为int?其他一切都很好。
double value1, value2, value3, value4;
value1 = 239.99;
value2 = 129.75;
value3 = 99.95;
value4 = 350.89;
Console.Write("Enter number sold of product #1: ");
int item1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter number sold of product #2: ");
int item2 = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter number sold of product #3: ");
int item3 = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter number sold of product #4: ");
int item4 = Convert.ToInt32(Console.ReadLine());
double sales1, sales2, sales3, sales4, totalSales;
sales1 = item1 * value1;
sales2 = item2 * value2;
sales3 = item3 * value3;
sales4 = item4 * value4;
totalSales = sales1 + sales2 + sales3 + sales4;
double commission;
int weeklyPay = 200;
commission = (9/100) * totalSales;
double salary;
salary = commission + weeklyPay;
Console.Write("Earnings this week: " + salary);
Console.ReadLine();
答案 0 :(得分:0)
Earnings this week
将始终返回200
。这不是因为没有读取用户输入(请参阅jih的答案,以获得将字符串解析为int的更健壮的方法),但是由于存在错误:
commission = (9/100) * totalSales;
问题是你正在做integer division。
尝试
commission = 0.09 * totalSales;
或
commission = 9.0/100.0 * totalSales;
9/100
周围的括号是多余的,但如果它们提高了可读性,则可以。
答案 1 :(得分:0)
虽然您的方法初看起来似乎是正确的,但您应该以非烦恼的方式将字符串转换为简单的数据类型。
检查这个(相当详细的)代码:
string userInput = Console.ReadLine();
int parsedValue;
if(!Int32.TryParse(userInput, out parsedValue))
{
// Decide what to do here, parsing failed!
}
else
{
// String format from user was valid and parsed value is in parsedValue variable.
}
如果您对更详细地说明为什么这是更好的编码感兴趣,请查看Eric Lippert关于Vexing Exceptions的文章。
答案 2 :(得分:0)
试试这个
佣金=((双倍)9/100)* totalSales;