2015-01-24 2 views
0

저는 Visual Basic에서 새로운 기능을 사용하고 있습니다. " '더블'을 입력 :이 내가 입력 된 모든 데이터 문제없이 할 수있는 런타임시 Visual Basic의 유효하지 않은 캐스트 런타임 오류

Sub Main() 
    Console.Write("Please let me know your nickname: ") 
    Dim name As String = Console.ReadLine() 
    Console.WriteLine("Thank you " + name + "!") 
    Console.WriteLine() 
    Console.Write("How many litres " + name + "<only whole litres please>? ") 
    Dim litres As Integer = Console.ReadLine() 
    Console.Write("Premium quality? <y/n>: ") 
    Dim ans As Char = Console.ReadLine() 
    Dim prem As Boolean 
    If ans = "y" Then 
     prem = True 
    ElseIf ans = "n" Then 
     prem = False 
    End If 

    Console.WriteLine() 
    Console.WriteLine("WELCOME TO APU'S GAS STATION") 
    Console.Write("Quality:  ") 
    If prem = True Then 
     Console.Write("Premium") 
    Else : Console.Write("Regular") 
    End If 

    Dim price As Double = 12.44 
    Console.WriteLine("Quantity <l>: " + litres) 
    Console.WriteLine("Price per l:  " + price) 
    Console.WriteLine("Sum to pay: " + litres * price) 

    Console.ReadLine() 
End Sub 

을 가지고,하지만 나는 대략 수량"문자열의 유효하지 않은 캐스트 "로 번역 할 수있는 오류 코드입니다 .. 내가 포인터를 감사하겠습니다, 무슨 일이 일어나고 있는지 확신하지 않다

+3

설정 옵션을 사용할 수 있습니다. 문자열 연결에는'&'를 사용하십시오. 문제 해결됨. –

+0

문자열에 double을 추가 할 수 없습니다. 유형이 일치하지 않습니다. &를 사용하여 문자열을 double로 연결할 수 있으며, +를 모두 & –

답변

-1

내가 코드를 고정이 작동합니다 :

Sub Main() 
    Console.Write("Please let me know your nickname: ") 
    Dim name As String = Console.ReadLine() 
    Console.WriteLine("Thank you " & name & "!") 
    Console.WriteLine() 
    Console.Write("How many litres " & name & "<only whole litres please>? ") 
    Dim litres As Integer = Console.ReadLine() 
    Console.Write("Premium quality? <y/n>: ") 
    Dim ans As Char = Console.ReadLine() 
    Dim prem As Boolean 
    If ans = "y" Then 
     prem = True 
    ElseIf ans = "n" Then 
     prem = False 
    End If 

    Console.WriteLine() 
    Console.WriteLine("WELCOME TO APU'S GAS STATION") 
    Console.Write("Quality:  ") 
    If prem = True Then 
     Console.Write("Premium") 
    Else : Console.Write("Regular") 
    End If 

    Dim price As Double = 12.44 
    Console.WriteLine("Quantity <l>: " & litres) 
    Console.WriteLine("Price per l:  " & price) 
    Console.WriteLine("Sum to pay: " & (litres * price)) 
    Console.ReadLine() 
End Sub 
2

이 문제를 방지하기 위해 사용할 수있는

Console.WriteLine("Quantity <l>: " + litres.ToString) 

또는 당신은 on``에 엄격한

Console.WriteLine("Quantity <l>: " + CStr(price))