Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 将字符串转换为double类型无效_.net_Vb.net - Fatal编程技术网

.net 将字符串转换为double类型无效

.net 将字符串转换为double类型无效,.net,vb.net,.net,Vb.net,我需要一些VB.Net代码的帮助,我无法通过 每次我运行它,我都会收到消息 字符串的转换对双精度无效 你能帮我吗 Dim num1 As Double = 0 Dim num2 As Double = 0 Dim operacion As Decimal ' Asignar n valores a las variables declaradas num1 = TextBox1.Text num2 = TextBox2.Text ' Ope

我需要一些VB.Net代码的帮助,我无法通过 每次我运行它,我都会收到消息

字符串的转换对双精度无效

你能帮我吗

    Dim num1 As Double = 0
    Dim num2 As Double = 0
    Dim operacion As Decimal
    ' Asignar n valores a las variables declaradas
    num1 = TextBox1.Text
    num2 = TextBox2.Text
    ' Operacion de incremento porcentual
    operacion = num1 + num1 * num2 / 100
    ' Mostrar el resultado de la operacion mediante un MsgBox - Se redondea el resultado
    MsgBox(Math.Round(operacion, 2), MsgBoxStyle.OkOnly, "Incremento Porcentual")
End Sub

显然,选择严格关闭你可以做到这一点

Pikoh的评论可能是正确的,您传递的字符串不能转换为Double

If Double.TryParse(TextBox1.Text, num1) AndAlso Double.TryParse(TextBox2.Text, num2) Then
  operacion = num1 + num1 * num2 / 100
  MsgBox(Math.Round(operacion, 2), MsgBoxStyle.OkOnly, "Incremento Porcentual")
Else
  MsgBox("Please enter valid numbers")
End If

您需要使用,否则代码就可以了。问题一定是文本框中的字符串,如果文本不是数字,您将得到exceptionTurning选项strict on将帮助您减少这些类型的错误errors@Pikoh-不,代码不正常。OP试图将文本框的文本属性值分配给类型为
Double
的变量。即使文本框中的字符串是
双精度
的有效表示形式,也需要在赋值之前对其进行转换。@ChrisDunaway正如我已经解释过的,如果
选项Strict
处于禁用状态,转换是自动的,代码会像我一样工作。你确定
Dim num as Double=TextBox1.Text
不工作吗?哦,VB和隐式转换的恐怖!我想这取决于你是否有严格的选择,你在C#花了太长时间。我将改为使用TryParse expample进行重写。是的,
Option Strict
是一个难题:)我不知道如何删去我以前的答案,对不起。你不需要删去,最好编辑答案并将其更正。顺便说一句,我不认为你之前的回答是错误的,我的评论只是为了注意到,在关闭option strict的情况下,演员阵容将是自动的:)