Vb.net VB上的摄氏度转换器遇到严格的选项错误

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

我希望有人能澄清我做错了什么。我正在尝试制作一个包含两个标签的表单-摄氏度和华氏度,分别有两个用于值的教科书和一个按钮-转换以显示摄氏度到华氏度的转换。我使用的以下代码使我不断遇到Strict Options错误,其中2个用于Option Strict On不允许从“Object”隐式转换为“String”,2个用于Option Strict On不允许从“String”隐式转换为“Double”。我似乎找不到办法取悦严格的选择

 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

提示:摄氏、华氏和答案变量应该是数字类型,而不是字符串。这将使您的错误更容易修复