【发布时间】:2020-08-21 05:59:53
【问题描述】:
我正在尝试计算工资,但在确定税收时遇到了问题。
前 60,000 美元的总工资不征税。工资总额在6万到10万美元之间的部分,缴纳20%的税,工资总额超过10万美元的部分,缴纳25%的税。编写一个程序,计算输入的总工资(税前工资)的净工资(税前工资)。
首先,如果我设置了两个条件。工资低于第一个限制,不得等于零或小于零。在这种情况下,净工资应该等于总工资。但是,当 NOT 运算符存在时,净工资总是高于总工资。
当我删除 NOT 运算符时,一切都很好。问题是为什么 NOT 运算符会增加我的净工资值?
这里是代码
const double s0 = 0;// s0, s1 and s2 are tax percentages
const double s1 = 0.2;
const double s2 = 0.25;
const double border1= 60000;
const double border2 = 100000;
double neto_salary;
Console.WriteLine(" Enter your bruto sallary ");
double bruto_salary = double.Parse(Console.ReadLine());
if ( (bruto_salary<border1) && (bruto_salary !<=0) ) //NOT operator on this line
{
neto_salary = bruto_salary * (1 - s0);
Console.WriteLine(" Your salary is {0} $ ", neto_salary);
}
else if ((bruto_salary>border1) && (bruto_salary<border2) )
{
neto_salary = border1 + (bruto_salary - border1) * (1 - s1);
Console.WriteLine(" Your salary is {0} $ ", neto_salary);
}
else
{
neto_salary = border1 + (border2 - border1) * (1 - s1) + (bruto_salary - border2) * (1 - s2);
Console.WriteLine(" Your salary is {0} $ ", neto_salary);
}
【问题讨论】:
-
我在您的代码中没有看到任何
NOT,所以我应该如何开始猜测您的问题出在哪里? -
这将是一些条件逻辑,我看到的唯一一个 NOT 运算符
!<=0看起来有点滑稽,你可以用>0更容易地说明这一点 -
也许你想要
> -
!<=0可能与>相同(同时可空性不是问题,并且不在该代码中)。 -
所以它必须是 > 0 - 它们是说同一件事的不同方式(假设
bruto_salary不是null,并且在您的特定代码中它不能是null)。
标签: c#