VB.net-一次半
我一直在想我该如何修改它,让它为员工支付超过40小时的工作时间的一半。我理解这将是一个if声明,但我不确定具体如何进行 示例:如果用户输入35.5小时和9.56作为费率,则净额为237.56美元 输入:工作时间和工资率 产出:不同的税收和净收入 以下是我到目前为止的情况:VB.net-一次半,vb.net,Vb.net,我一直在想我该如何修改它,让它为员工支付超过40小时的工作时间的一半。我理解这将是一个if声明,但我不确定具体如何进行 示例:如果用户输入35.5小时和9.56作为费率,则净额为237.56美元 输入:工作时间和工资率 产出:不同的税收和净收入 以下是我到目前为止的情况: Const FWT_ As Decimal = 0.2 Const FICA_ As Decimal = 0.08 Const STAT As Decimal = 0.02 Dim Hrs A
Const FWT_ As Decimal = 0.2
Const FICA_ As Decimal = 0.08
Const STAT As Decimal = 0.02
Dim Hrs As Decimal
Dim Rate As Decimal
Dim Gros As Decimal
Dim FWT As Decimal
Dim Fi As Decimal
Dim stat As Decimal
Dim NetPay As Decimal
Decimal.TryParse(txtHours.Text, Hrs)
Decimal.TryParse(txtRate.Text, Rate)
Gros = Math.Round(Hrs * Rate, 2)
FWT = Math.Round(Gros * FWT_, 2)
Fi = Math.Round(Gros * FICA_, 2)
stat = Math.Round(Gros * STAT, 2)
NetPay = Gros - FWT - Fi - stat
lblGr.Text = Gros.ToString("N2")
lblF.Text = Fi.ToString("N2")
lblF.Text = Fi.ToString("N2")
lblSt.Text = stat.ToString("N2")
lblN.Text = NetPay.ToString("C2")
多谢各位 您可以将
0.5*费率
工作时间超过40小时的工资添加到现有计算中:
If Hrs > 40 Then
Gros += Math.Round( (Hrs-40) * Rate * 0.5 )
End If
我不知道如何具体编写答案,以便在visual basic程序中编译,但我可以给出算法答案
if(hours > 40)
payment = 40 * rate + ((hours-40)) * (rate*1.5);
else
payment = hours * rate;
或如果VB支持三元运算符
payment = hours > 40 ? (40 * rate + ((hours-40)) * (rate*1.5)) : (hours * rate);
如果要我编辑这段代码,我首先要做的是:
Gros = Math.Round(Hrs * Rate, 2)
到
键盘输入并不短缺。请使用更有意义的标识符!六个月后你会感谢你的。
Gros = Math.Round(hours > 40 ? (40 * rate + ((hours-40)) * (rate*1.5)) : (hours * rate), 2)