มันขึ้นว่า Conversion from string "" to type 'Double' is not valid.
นี่ตัวอย่างโค้ด :
Private Sub CalculateTotal()
Dim Total As Double = 0
Dim Dc As Single = 0.0
Total = CDbl(lblPrice.Text) * CInt(txtAmount.Text)
'lbltotal.Text = Total.ToString("#,##0")
Dc = CSng(Total * CDbl(txtDec.Text) / 100) *มันติดตรงนี้อ่ะค่ะ*
Total = Total - Dc
lbltotal.Text = Total.ToString("#,##0")
End Sub
Dim Total As Double = 0
Dim Dc As Single = 0.0
Total = CDbl(Val(lblprice.Text)) * CInt(Val(txtamount.Text))
'lbltotal.Text = Total.ToString("#,##0")
Dc = CSng(Total * CDbl(Val(txtdec.Text)) / 100) '//*มันติดตรงนี้อ่ะค่ะ*
Total = Total - Dc
lbltotal.Text = Total.ToString("#,##0")
ก่อนคำนวณ ต้องเช็คว่า text box เป็นค่าว่าง หรือเปล่าคะ
ค่าว่างแปลงเป็น int หรือ Dbl หรือ Sng ไม่ได้ค่ะ
Code (VB.NET)
Private Sub CalculateTotal()
Dim Total As Double = 0
Dim Dc As Single = 0.0
if txtAmount.Text<>"" and txtDec.Text<>"" then 'หรืออาจจะตรวจสอบถ้าเป็นค่าว่างให้ =0 ก็ได้ค่ะ
Total = CDbl(lblPrice.Text) * CInt(txtAmount.Text)
'lbltotal.Text = Total.ToString("#,##0")
Dc = CSng(Total * CDbl(txtDec.Text) / 100) '*มันติดตรงนี้อ่ะค่ะ* บางที txtDec.Text อาจเป็นค่าว่างค่ะ
Total = Total - Dc
lbltotal.Text = Total.ToString("#,##0")
end if
End Sub
นี่โค้ด
Private Sub CalculatePaid()
Dim i As Integer = 0
Dim tmpPaidTotal As Double = 0
Dim tmpNetTotal As Double = 0
Dim tmpDc As Single = 0.0
For i = 0 To lsvProductList.Items.Count - 1
tmpPaidTotal += CDbl(lsvProductList.Items(i).SubItems(5).Text.Trim())
Next
lblPaid.Text = tmpPaidTotal.ToString("#,##0")