2017-09-29 19 views
0

我在我的社區學院參加視覺基礎課,我的老師似乎無法回答我的任何問題,我真的可以在這個項目中使用一些幫助。工資項目

我到目前爲止,但即時格式化貨幣的麻煩。

我使用變量代替txtbox.text

Public Class Payroll 
    Dim count As Integer = 0 
    Const federal_tax_rate As Decimal = 0.12 
    Const state_tax_rate As Decimal = 0.04 
    Const medicare_tax_rate As Decimal = 0.01 
    Dim GrossPay = txtGrossPay.Text.ToString("C") 
    Dim FederalTax.ToString("C") = txtFederalTax.text 
    Dim StateTax.tostring("C") = txtStateTax.text 
    Dim MedicareTax.tostring("C") = txtMedicareTax.text 
    Dim NetPay.tostring("C") = txtNetPay.text 



    Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click 
     GrossPay = txtHoursWorked.Text * txtPayRate.Text 
     FederalTax = federal_tax_rate * txtGrossPay.Text 
     StateTax = state_tax_rate * txtGrossPay.Text 
     MedicareTax = medicare_tax_rate * txtGrossPay.Text 
     NetPay = txtGrossPay.Text - txtFederalTax.Text - txtStateTax.Text - txtMedicareTax.Text 
    End Sub 

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

    Private Sub btnDisplayOutput_Click(sender As Object, e As EventArgs) Handles btnDisplayOutput.Click 
     count = count + 1 
     lstOutput.Items.Add("Employee " & count) 
     lstOutput.Items.Add("----------------") 
     lstOutput.Items.Add("Name: ") 
     lstOutput.Items.Add("Social Security Number: ") 
     lstOutput.Items.Add("Department: ") 
     lstOutput.Items.Add("Hours worked: " & txtHoursWorked.Text) 
     lstOutput.Items.Add("Pay rate: " & txtHoursWorked.Text) 
     lstOutput.Items.Add("Gross pay: " & txtGrossPay.Text) 
     lstOutput.Items.Add("Federal tax withheld: " & txtFederalTax.Text) 
     lstOutput.Items.Add("State tax withheld: " & txtStateTax.Text) 
     lstOutput.Items.Add("Medicare tax withheld: " & txtMedicareTax.Text) 
     lstOutput.Items.Add("Net pay: " & txtNetPay.Text) 
    End Sub 

    'Clears the output box. 
    Private Sub btnReset_Click(sender As Object, e As EventArgs) Handles btnReset.Click 
     txtHoursWorked.Text = "" 
     txtPayRate.Text = "" 

     lstOutput.Items.Clear() 
    End Sub 
End Class 
+4

請閱讀[問]並參加[旅遊]。這不是教程網站。如果你問了一個具體的問題,有人會更容易回答。首先設置'Option Strict On' – Plutonix

回答

-1

的ToString(「C」)已經是在等號的右邊簽署

昏暗NetPay作爲字符串試圖= txtNetPay.text.tostring(「C2」)

但比具有作爲字符串是設置該變量作爲數據類型單一,並做了的ToString(「C」)當顯示值的變量更正確

昏暗NetPay單= CSng函數(txtnetpay.text)

lstOutput.Items.Add( 「淨工資:」 & NetPay.Tostring( 「C2」)

希望這有助於

+0

我會盡力謝謝你。 –

+0

我的代碼必須嚴重錯誤,我嘗試了兩個建議,程序中沒有任何區別。 –

+0

lstOutput.Items.Add(「醫療保險代扣稅:」&NetPay.tostring(「C2」)) 一定的NetPay變量是一種數據類型單一 – Davester

0

你總是能將所有變量聲明爲Single,然後在輸出結果時使用可以控制小數精度的格式語句,如:

lstOutput.Items.Add(「Gross pay:」& Format(GrossPay,「0.00」) )

但是你需要去掉輸出變量的所有「txt」前綴。對於與財務金額相關的數值變量,我絕不會通過文本字段存儲成本值,而是將所有內容都保存爲單一類型,然後格式化輸出語句。 (換句話說,你不必使用十進制或貨幣)。如果舍入錯誤變得重要,則可以轉換爲雙精度Double型變量。

+0

這是不好的建議;小數類型應始終用於貨幣。請參閱許多例子之一,[這是SO回答](https://stackoverflow.com/questions/1165761/decimal-vs-double-which-one-should-i-use-and-when) – peterG

+0

這是一個偉大的評論。如果您想要使用Decimal的替代方法,而不是Single,則必須使用Double來最接近Decimal的整數限制。 – wrtsvkrfm