Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.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
VB.NET计算错误_Vb.net_Calculator - Fatal编程技术网

VB.NET计算错误

VB.NET计算错误,vb.net,calculator,Vb.net,Calculator,我做了一个sodavending mashine,它可以显示价格,你付了多少钱,它可以给你钱,但由于某种原因,程序开始计算错误,前几天在这里运行良好,我没有更改我的代码,所以我拿一杯苏打水到18克朗,我在机器里放了5克朗,然后按pay,出于某种原因,它说这是你支付给很多人的钱,还给你-13韩元,前几天它没有这样做,正如我说的,我没有更改代码。下面是一段令我恼火的代码:贵重物品是用丹麦语写的 'Her fortæller jeg om man har givet det beløb man ska

我做了一个sodavending mashine,它可以显示价格,你付了多少钱,它可以给你钱,但由于某种原因,程序开始计算错误,前几天在这里运行良好,我没有更改我的代码,所以我拿一杯苏打水到18克朗,我在机器里放了5克朗,然后按pay,出于某种原因,它说这是你支付给很多人的钱,还给你-13韩元,前几天它没有这样做,正如我说的,我没有更改代码。下面是一段令我恼火的代码:贵重物品是用丹麦语写的

'Her fortæller jeg om man har givet det beløb man skal
Private Sub ButtonBetal_Click(sender As Object, e As EventArgs) Handles ButtonBetal.Click
    If TextBoxBeløb.Text = TextBoxPris.Text Then
        MsgBox("Værsgo")
    End If

    If TextBoxBeløb.Text < TextBoxPris.Text Then
        MsgBox("Ikke nok penge")
    End If

    If TextBoxBeløb.Text > TextBoxPris.Text Then
        MsgBox("Her er de overskyende penge og din sodavand :)")
    End If

    If TextBoxBeløb.Text > TextBoxPris.Text Then
        TextBoxPengeTilbage.Text = TextBoxBeløb.Text - TextBoxPris.Text
    End If
End Sub

如果有人能帮上忙,我会非常高兴的

你似乎在比较字符串值,而不是数字。按字母顺序,13小于5,这就是它不起作用的原因。在执行比较和计算之前,需要将文本值转换为数字

比如:希望这是正确的,我是C程序员,不是VB

Dim Beløb as Decimal = Convert.ToDecimal(TextBoxBeløb.Text)
Dim Pris as Decimal = Convert.ToDecimal(TextBoxPris.Text)

If Beløb = Pris Then
    MsgBox("Værsgo")
End If

If Beløb < Pris Then
    MsgBox("Ikke nok penge")
End If

If Beløb > Pris Then
    MsgBox("Her er de overskyende penge og din sodavand :)")
    TextBoxPengeTilbage.Text = Beløb - Pris
End If

调试时,具体在哪里失败?为什么要对文本值而不是数值执行数学运算?请先将其转换为整数,然后再与其他受害者进行比较。此选项应处于启用状态。说真的。考虑到OP问题中的整数示例,我认为Kr相当于一便士/美分。如果不是这样,那么是的,它们应该是小数。更新后使用更合适的小数。呵呵,不,丹麦货币是克朗