2014-02-07 62 views
0

我是小白編程和我有一點有一些代碼,我試圖寫麻煩......無法將字符串轉換爲雙精度vb2008?

這看起來可能很瑣碎到更專業的人羣然而,這裏有雲......

Private Sub CK_btn_Total_Bill_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CK_btn_Total_Bill.Click 

    Dim totalPrice_1 As Double 
    totalPrice_1 = totalPrice_1 + _ 
    CDbl(CK_txt_Quantity.Text) * _ 
    CDbl(CK_txt_Price.Text) * _ 
    System.Convert.ToDouble((100 + CK_txt_Tax.Text)/100) 
    CK_txt_Total.Text = totalPrice_1 

當我測試調試時,我的代碼的其餘部分運行良好,但這6行永遠不可執行。 CK_btn_Total_Bill_click不起作用...

任何人都可以請幫忙嗎?

+7

這是一個事件處理程序,你點擊了按鈕嗎? –

+0

另外它可能會更容易,如果你只是使用Double.Parse或Double.TryParse轉換爲double,並且我建議將System.Convert.ToDouble((100 + CK_txt_Tax.Text)/ 100)改爲( 100 + Double.Parse(Iff(String.IsNullOrEmpty(CK_txt_Tax.Text),「0」,CK_txt_Tax.Text))/ 100' –

+3

如果您的問題是您的代碼從未運行,則將字符串轉換爲double是無關緊要的。你的代碼用'Debug.WriteLine(「Hello」)''在這個語句上放置一個斷點,如果它仍然不運行,問題不在於你的6行,它是**如何將控制**傳遞給這6行實驗結束後,相應調整你的問題並提供更多細節。 – Neolisk

回答

0

如果處理程序未觸發,則事件不會調用它。你能改變按鈕的名字嗎?我不確定VS2008是否會在更改名稱時自動更新對該按鈕的每個調用。

你的一個問題,可能是在這裏:

System.Convert.ToDouble((100 + CK_txt_Tax.Text)/100) 

你正在努力,而不是將其轉換爲數字做數學運算具有字符串值。像這樣的東西可能會奏效:

Dim CKTax,CKQuantity,CKPrice As Double 
If Double.TryParse(CK_txt_Quantity.Text, CKQuantity) AndaAlso _ 
    Double.TryParse(CK_txt_Price.Text) AndAlso _ 
    Double.TryParse(CK_txt_Tax.Text, CKTax) Then 

    totalPrice_1 = totalPrice_1 + CKQuantity * CKPrice * ((100 + CKTax)/100) 
End If 
0

如果事件不觸發,意味着問題是與代碼,而是與處理程序。

請確認您的按鈕名稱爲CK_btn_Total_Bill

但是

,你需要驗證您的文本框不爲空也試圖轉換,這可能導致轉換異常之前。或者在執行任何數學運算之前使用Double.TryParse來嘗試轉換。

相關問題