【发布时间】:2010-10-06 19:29:06
【问题描述】:
在下面的代码中,我得到“从字符串“转换为类型 'Double' 无效。”错误。谁能让我知道这是为什么?谢谢。
Public Class Form1
Dim SalesDecimal As Decimal
Const BasePay As Decimal = 250D
Const CommissionRate As Decimal = 0.15D
Dim Quota As Integer = 1000
Dim TotalSalesAmt, TotalComAmt, GrandTotal As Decimal
Private Sub PayToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PayToolStripMenuItem.Click
SalesDecimal = Decimal.Parse(TextBox3.Text)
TextBox2.Text = Decimal.Parse(CommissionCalc(SalesDecimal))
***TextBox4.Text = Decimal.Parse(CommissionRate * SalesDecimal)***
If TextBox3.Text < 1000 Then
TextBox4.Text = ""
End If
TotalSalesAmt += TextBox3.Text
TotalComAmt += TextBox4.Text
GrandTotal += TextBox2.Text
End Sub
Private Function CommissionCalc(ByVal Sales As Integer) As Decimal
Dim Total = (SalesDecimal * CommissionRate) + BasePay
If Sales >= Quota Then
Return Total
Else
Return BasePay
End If
End Function
Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
Me.Close()
End Sub
Private Sub ClearToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClearToolStripMenuItem.Click
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
End Sub
Private Sub ColorToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ColorToolStripMenuItem.Click
With ColorDialog1
ColorDialog1.ShowDialog()
TextBox2.ForeColor = .Color
End With
End Sub
Private Sub FontToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FontToolStripMenuItem.Click
With FontDialog1
.ShowDialog()
TextBox2.Font = .font
End With
End Sub
Private Sub SummaryToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SummaryToolStripMenuItem.Click
Dim MessageString As String
MessageString = "Amount of sales: " & TotalSalesAmt.ToString("C") _
& Environment.NewLine & Environment.NewLine _
& "Total Commissions: " & TotalComAmt.ToString("C") _
& Environment.NewLine & Environment.NewLine _
& "Total Pay: " & GrandTotal.ToString("C")
MessageBox.Show(MessageString, "Sales Summary", MessageBoxButtons.OK)
End Sub
结束类
【问题讨论】:
-
将“Option Strict On”放在源代码文件的顶部。你会得到一百个错误,这需要你一周的时间来修复。但是你会知道字符串和数字之间的区别。
-
谢谢汉斯,我明白了我的问题所在。
标签: visual-studio-2008 type-conversion