Vb.net VB上的摄氏度转换器遇到严格的选项错误
我希望有人能澄清我做错了什么。我正在尝试制作一个包含两个标签的表单-摄氏度和华氏度,分别有两个用于值的教科书和一个按钮-转换以显示摄氏度到华氏度的转换。我使用的以下代码使我不断遇到Strict Options错误,其中2个用于Option Strict On不允许从“Object”隐式转换为“String”,2个用于Option Strict On不允许从“String”隐式转换为“Double”。我似乎找不到办法取悦严格的选择Vb.net VB上的摄氏度转换器遇到严格的选项错误,vb.net,visual-studio-2012,Vb.net,Visual Studio 2012,我希望有人能澄清我做错了什么。我正在尝试制作一个包含两个标签的表单-摄氏度和华氏度,分别有两个用于值的教科书和一个按钮-转换以显示摄氏度到华氏度的转换。我使用的以下代码使我不断遇到Strict Options错误,其中2个用于Option Strict On不允许从“Object”隐式转换为“String”,2个用于Option Strict On不允许从“String”隐式转换为“Double”。我似乎找不到办法取悦严格的选择 Private Sub btnConvert_Click(sen
Private Sub btnConvert_Click(sender As Object, e As EventArgs) Handles btnConvert.Click
Dim celsius As String
Dim answer As String
Dim fahrenheit As String
celsius = txtCelsius.Text
fahrenheit = txtFahrenheit.Text
If String.IsNullOrEmpty(txtFahrenheit.Text) Then
answer = celsius * 9 / 5 + 32
txtFahrenheit.Text = Int(answer)
End If
If String.IsNullOrEmpty(txtCelsius.Text) Then
answer = (fahrenheit - 32) * 5 / 9
txtCelsius.Text = Int(answer)
您有许多隐式转换,可以进行固定/显式转换: 在
摄氏*9/5+32
和(华氏-32)*5/9
中有隐式转换。
celcius
和farhenheit
是字符串,但您将其用作数字
当你把结果放入答案中时,你还有:
答案=摄氏度*9/5+32
answer
是一个字符串,但您正在分配计算结果。它应该是双精度或类似的数据类型,而不是字符串
然后将Int(answer)
放入文本字段。
第一个answer
仍然是一个字符串,但是Int()
需要一个数字(如果我没记错的话)。然后将该结果自动放入字符串:
txtcessics.Text=Int(答案)
带有选项的选项严格限制
你需要自己做转换
我已编辑了您的代码,请尝试以下操作
Dim celsius As String
Dim answer As String
Dim fahrenheit As String
celsius = txtCelsius.Text
fahrenheit = txtFahrenheit.Text
If String.IsNullOrEmpty(txtFahrenheit.Text) Then
answer = CStr(CDbl(celsius) * 9 / 5 + 32)
txtFahrenheit.Text = answer
End If
If String.IsNullOrEmpty(txtCelsius.Text) Then
answer = CStr((CDbl(fahrenheit) - 32) * 5 / 9)
txtCelsius.Text = answer
End If
提示:摄氏、华氏和答案变量应该是数字类型,而不是字符串。这将使您的错误更容易修复