【发布时间】:2020-09-19 01:31:38
【问题描述】:
我刚开始使用 VB,不得不将“Option Strict”切换为开启。我的代码中出现此错误,提示“Option Strict On 不允许从 'double 到 long' 的隐式转换。”我知道这是什么意思,但我和我的朋友似乎无法解决这个问题。
错误:“Option Strict 不允许将第 24 行的 value1 和 value 2 从 'Double' 隐式转换为 'Long'。(Private Sub btnIntDiv_Click)
代码如下:
Public Class frmMathCalculator
Dim value1 As Double
Dim value2 As Double
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
value1 = Integer.Parse(txtValue1.Text)
value2 = Integer.Parse(txtValue2.Text)
Dim addResult As Double = value1 + value2
lstAnswer.Items.Add(addResult)
End Sub
Private Sub btnSubtract_Click(sender As Object, e As EventArgs) Handles btnSubtract.Click
Dim subtractResults As Double = value1 - value2
lstAnswer.Items.Add(subtractResults)
End Sub
Private Sub btnMultiply_Click(sender As Object, e As EventArgs) Handles btnMultiply.Click
Dim multiplyResults As Double = value1 * value2
lstAnswer.Items.Add(multiplyResults)
End Sub
Private Sub btnLongDiv_Click(sender As Object, e As EventArgs) Handles btnLongDiv.Click
Dim divideResults As Double = value1 / value2
lstAnswer.Items.Add(divideResults)
End Sub
Private Sub btnIntDiv_Click(sender As Object, e As EventArgs) Handles btnIntDiv.Click
Dim intDivResults As Double = value1 \ value2
lstAnswer.Items.Add(intDivResults)
End Sub
Private Sub btnMod_Click(sender As Object, e As EventArgs) Handles btnMod.Click
Dim modResults As Double = value1 Mod value2
lstAnswer.Items.Add(modResults)
End Sub
Private Sub btnExponent_Click(sender As Object, e As EventArgs) Handles btnExponent.Click
Dim expResults = value1 ^ value2
lstAnswer.Items.Add(expResults)
End Sub
End Class
【问题讨论】:
-
如果你使用
Integer.Parse(),那你为什么将value1和value2声明为Double?将它们声明为Integer,问题就会消失。或者,如果您想支持十进制数(不仅仅是整数),请使用Double.Parse()并将value1 \ value2替换为CInt(value1 / value2)。 -
此外,在处理用户输入时应避免使用
.Parse()方法。考虑改用.TryParse()。
标签: vb.net