VB.net-一次半

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

我一直在想我该如何修改它,让它为员工支付超过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 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)