操作符& # 39;& # 39;不能应用于'float'类型的操作数和& # 39;字符串# 39;
本文关键字:操作数 字符串 应用于 不能 操作符 float 类型 | 更新日期: 2023-09-27 18:15:39
我正在创建一个小程序,它要求用户输入一些关于他们自己的信息,然后他们完成了多少小时的工作,然后计算他们的总收入,净收入和税后收入。我不是100%熟悉c#中的所有术语,但希望有人能指导我正确的方向,我也想知道是否有任何方法可以缩短代码,使其看起来更干净,更容易阅读,并有一种方法使其在数字后只有2个小数点。
这只是我收到错误的一小部分代码。这些都是浮点数
hrsworked:用户输入他们工作了多少小时
税费:预定值35.72%
私人:就是每小时31.31美元的工资率
Console.WriteLine("'nGross Pay " + (hrsworked * prate).ToString("c"));
Console.WriteLine("Tax " + ((hrsworked * prate) * (tax / 100)).ToString("c"));
Console.WriteLine("Net Pay " + ((hrsworked * prate) - ((hrsworked * prate) * (tax / 100)).ToString("c")));
您的代码中有一些错别字。花点时间仔细回顾一下你正在做的事情。
以这一行为例,它导致了标题中的错误:
((hrsworked * prate) - ((hrsworked * prate) * (tax / 100)).ToString("c")));
括号是这样分组的:
(
(hrsworked * prate)
-
((hrsworked * prate) * (tax / 100)).ToString("c")
)
你试图从一个数字中减去一个字符串。你需要调整括号:
... ((hrsworked * prate) - ((hrsworked * prate) * (tax / 100))).ToString("c"));
至于"更干净",我绝对会听从bloorgbeard的建议,把这些都拿出来。例如:
var grossPay = hrsworked * prate;
var taxPercentage = tax / 100;
... + grossPay.ToString("c"));
... + (grossPay * taxPercentage).ToString("c"));
... + (grossPay - (grossPay * taxPercentage)).ToString("c")));
(由于操作顺序,您不需要在上面最后一行最里面的括号,但我认为它使它更易于阅读。YMMV)
Console.WriteLine("Please enter hours.");
var hoursWorked = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please enter pay rate");
var payRate = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please enter tax.");
var tax = Convert.ToDouble(Console.ReadLine());
var grossPay=(hoursWorked * payRate);
var taxAmount = (grossPay * (tax / 100));
var netPay = grossPay - taxAmount;
Console.WriteLine(string.Format("Gross Pay {0}",grossPay.ToString("c")));
Console.WriteLine(string.Format("Tax {0}", taxAmount.ToString("c")));
Console.WriteLine(string.Format("Net Pay {0}", netPay.ToString("c")));
错误在这部分代码中:
(hrsworked * prate) - ((hrsworked * prate) * (tax / 100)).ToString("c"))
您尝试从(hrsworked * prate)
中减去字符串((hrsworked * prate) * (tax / 100)).ToString("c")
你可以试着在http://www.dotnetperls.com/上阅读有关c#的内容。我觉得这些例子很容易理解。