错误“从字符串转换”&引用;输入';双倍';在VB.net中无效

错误“从字符串转换”&引用;输入';双倍';在VB.net中无效,vb.net,Vb.net,我正在尝试编写计算双精度值,但出现了一个错误,即从字符串“”转换为类型“double”无效。 Dim x As Integer = "8" Dim f As Integer = "100" Dim z As Double Dim r As Double Dim Nw As Double Dim W As Double Dim Was As Double Dim Nwas As Double Dim cost As Doubl

我正在尝试编写计算双精度值,但出现了一个错误,即从字符串“”转换为类型“double”无效。

    Dim x As Integer = "8"
    Dim f As Integer = "100"
    Dim z As Double
    Dim r As Double
    Dim Nw As Double
    Dim W As Double
    Dim Was As Double
    Dim Nwas As Double
    Dim cost As Double
    Dim IBLP As Double
    Dim sale As Double
    Dim sale1 As Double
    Dim last As Double


    Nw = CDbl(txtnetwasage.Text)
    W = CDbl(txtweight.Text)
    Was = CDbl(txtwastage.Text)
    Nwas = CDbl(txtnetweight.Text)
    cost = CDbl(txtcost.Text)
    IBLP = CDbl(txtwastage.Text)
    sale = CDbl(txtsale.Text)
    sale1 = CDbl(txtvsale1.Text)
    last = Double.Parse(txtlast.Text)

    Nw = (W) * (Was)
    Nwas = (W) + (Nwas)
    cost = (IBLP) / (x) * (Nwas)
    z = (cost) / (f) * (sale)
    sale = (z) + (cost)
    r = (cost) / (f) * (sale1)
    last = (r) + (cost)

下面是Codexer在注释中建议的
Double.TryParse()
示例:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim W As Double
    If Not Double.TryParse(txtweight.Text, W) Then
        MessageBox.Show("Value: " & txtweight.Text, "Invalid Weight")
        txtweight.Focus()
        txtweight.SelectAll()
        Exit Sub
    End If

    Dim Nwas As Double
    If Not Double.TryParse(txtnetweight.Text, W) Then
        MessageBox.Show("Value: " & txtnetweight.Text, "Invalid Net Weight")
        txtnetweight.Focus()
        txtnetweight.SelectAll()
        Exit Sub
    End If

    ' ... etc ...

    ' ... everything is good, perform your calculations ...

End Sub

将所有
CDbl
更改为
Double.TryParse(您的文本字段,变量)
。。。一个或多个文本字段不是双精度文本。您需要确保输入是有效的双精度输入,
TryParse
将有所帮助。在代码的第一行,添加“Option Strict On”(选项严格开启)。试图声明一个整数并为其分配一个字符串会导致灾难。