VB.Net中的计算问题

时间:2015-03-12 17:56:16

标签: vb.net

所以,首先,让我开始说它是F-O-R-E-V-E-R,因为我已用Vb编码......不要判断。计算如下:

Dim laborCost As Decimal
laborCost = (loadLabor + unLabor + dryPckge) / 60 * costpHour
lblLabCostpRun.Text = laborCost.ToString("C2")

我觉得自己像个白痴,因为我知道它的一些简单和我失踪的东西...一切都已经定义了...无论我放入什么......我得到0.每个发臭的时间。我究竟做错了什么?

来源

'Option Explicit On
'Option Strict On
'Option Infer Off


Public Class Job_Shop
  Dim wearRate As Decimal
  Dim density As Decimal
  Dim capacity As Decimal
  Dim costpGallon As Decimal
  Dim cuFt As Decimal
  Dim costpHour As Decimal = 20
  Dim machineCost As Decimal
  Dim bOH As Decimal
  Dim facOH As Decimal
  Dim profit As Decimal = 0.3
  Dim processTime As Decimal
  Dim loadLabor As Decimal
  Dim unLabor As Decimal
  Dim dryPckge As Decimal
  Dim pcPerLoad As Decimal


  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load

    cmbbxVMachineName.Items.Add("Torex TH-299 F")
    cmbbxVMachineName.Items.Add("Sweco 1.2")
    cmbbxVMachineName.Items.Add("Torex 6026 A")
    cmbbxVMachineName.Items.Add("Torex 6026 B")
    cmbbxVMachineName.Items.Add("Sweco FM10")
    cmbbxVMachineName.Items.Add("Sweco FM7")
    cmbbxVMachineName.Items.Add("VT-5524 F - A")
    cmbbxVMachineName.Items.Add("VT-5524 F - B")
    cmbbxVMachineName.Items.Add("VTHT-2450")

    cmbbxBMachineName.Items.Add("BB6")
    cmbbxBMachineName.Items.Add("RS 6060 Rotating Head")
    cmbbxBMachineName.Items.Add("PF 3648 SRC")
    cmbbxBMachineName.Items.Add("PF 3648 SRC - Basket")

    cmbbxVibMedia.Items.Add("HD-1 3/4 Cone")
    cmbbxVibMedia.Items.Add("F 3/16 Cyl.")
    cmbbxVibMedia.Items.Add("ECH 7/8 T2")
    cmbbxVibMedia.Items.Add("ECH 7/16 Cyl.")
    cmbbxVibMedia.Items.Add("3/16 Steel Ball Cone")
    cmbbxVibMedia.Items.Add("UFX 3/8 X 3/8 ACT")
    cmbbxVibMedia.Items.Add("XC 7/8 Cyl.")
    cmbbxVibMedia.Items.Add("LD 2 3/4 Cone")
    cmbbxVibMedia.Items.Add("HD-1 Tri Star 1-3/8 X 1/2")
    cmbbxVibMedia.Items.Add("5/16 Steel Cone")
    cmbbxVibMedia.Items.Add("25/32 Steel Cone")

    cmbbxBlastMedia.Items.Add("S-170")
    cmbbxBlastMedia.Items.Add("B-120")
    cmbbxBlastMedia.Items.Add("BT-8 & BT-18")
    cmbbxBlastMedia.Items.Add("20-70 A/O")
    cmbbxBlastMedia.Items.Add("120-220 A/O")
    cmbbxBlastMedia.Items.Add("Poly V 16/20 IG")
    cmbbxBlastMedia.Items.Add("WB #3")

    cmbbxPCompName.Items.Add("211")
    cmbbxPCompName.Items.Add("551")
    cmbbxPCompName.Items.Add("553")
    cmbbxPCompName.Items.Add("4677")
    cmbbxPCompName.Items.Add("842")
    cmbbxPCompName.Items.Add("320")

    cmbbxLCompName.Items.Add("103")
    cmbbxLCompName.Items.Add("307")

    cmbbxProcessTime.Items.Add("1-10 Minutes")
    cmbbxProcessTime.Items.Add("11-20 Minutes")
    cmbbxProcessTime.Items.Add("21-30 Minutes")
    cmbbxProcessTime.Items.Add("31-40 Minutes")
    cmbbxProcessTime.Items.Add("41-50 Minutes")
    cmbbxProcessTime.Items.Add("51-60 Minutes")
    cmbbxProcessTime.Items.Add("61-70 Minutes")

    If cmbbxProcessTime.Text = "1-10 Minutes" Then
        processTime = 1
    End If

    cmbbxLoadLabor.Items.Add("1-10 Minutes")
    If cmbbxLoadLabor.Text = "1-10 Minutes" Then
        loadLabor = 1
    End If
    cmbbxLoadLabor.Items.Add("11-20 Minutes")
    cmbbxLoadLabor.Items.Add("21-30 Minutes")
    cmbbxLoadLabor.Items.Add("31-40 Minutes")
    cmbbxLoadLabor.Items.Add("41-50 Minutes")
    cmbbxLoadLabor.Items.Add("51-60 Minutes")

    cmbbxUnLabor.Items.Add("1-10 Minutes")
    If cmbbxUnLabor.Text = "1-10 Minutes" Then
        unLabor = 1
    End If
    cmbbxUnLabor.Items.Add("11-20 Minutes")
    cmbbxUnLabor.Items.Add("21-30 Minutes")
    cmbbxUnLabor.Items.Add("31-40 Minutes")
    cmbbxUnLabor.Items.Add("41-50 Minutes")
    cmbbxUnLabor.Items.Add("51-60 Minutes")

    cmbbxDryPckage.Items.Add("1-10 Minutes")
    If cmbbxDryPckage.Text = "1-10 Minutes" Then
        dryPckge = 1000
    End If
    cmbbxDryPckage.Items.Add("11-20 Minutes")
    cmbbxDryPckage.Items.Add("21-30 Minutes")
    cmbbxDryPckage.Items.Add("31-40 Minutes")
    cmbbxDryPckage.Items.Add("41-50 Minutes")
    cmbbxDryPckage.Items.Add("51-60 Minutes")

    cmbbxPcperLoad.Items.Add("1-10 Pieces")
    If cmbbxPcperLoad.Text = "1-10 Minutes" Then
        pcPerLoad = 10000
    End If
    cmbbxPcperLoad.Items.Add("11-20 Pieces")
    cmbbxPcperLoad.Items.Add("21-50 Pieces")
    cmbbxPcperLoad.Items.Add("51-100 Pieces")
    cmbbxPcperLoad.Items.Add("101-250 Pieces")
    cmbbxPcperLoad.Items.Add("251-500 Pieces")
    cmbbxPcperLoad.Items.Add("501-1000 Pieces")


  End Sub

  Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
    Me.Close()
  End Sub

  Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
    Dim laborCost As Decimal
    laborCost = (loadLabor + unLabor + dryPckge) / 60 * costpHour
    lblLabCostpRun.Text = laborCost.ToString("C2")
    'lblLabCostpRun.Text = laborCost
   'lblLabCostpRun.Text = (loadLabor + unLabor + dryPckge) / 60 * costpHour
 End Sub
End Class

1 个答案:

答案 0 :(得分:0)

如果loadLaborunLabor以及dryPckge是整数,则除以将得到舍入到最接近整数的值。首先尝试乘以:

Dim laborCost As Decimal laborCost = costpHour * (loadLabor + unLabor
+ dryPckge) / 60 lblLabCostpRun.Text = laborCost.ToString("C2")

...或在计算前将每个值转换为小数。

最后,如果你的任何一个变量为零,你的答案就会为零。应该不言而喻,但我在这里说。

相关问题