2013-01-18 2 views
0

단순한 지불 계산기를 만드는 것입니다. 사용자는 baseSalary, totalSales 및 해당 commissionRate를 입력합니다. 프로그램은 정상적으로 작동하지만 totalPay가 제대로 작동하지 않습니다. 어떤 도움이라도 굉장합니다. 이것은 가장 간단한 해결 방법이지만, VB 클래스의 두 번째 날이기 때문에이를 해결하는 방법이 무엇인지 알지 못합니다. 주어진 도움에 미리 감사드립니다!VB 총 임금 계산

' Total Pay Calculator 
' By: Jeremy Flaugher 
' 01/17/2013 


Module myPay 
    Sub Main() 
     ' Declare the variables 
     Dim baseSalary As Integer 
     Dim totalSales As Integer 
     Dim commissionRate As Decimal 
     Dim totalPay As Integer 

     ' Title and By line 
     Console.Out.WriteLine("Welcome to the Paycheck Calculator") 
     Console.Out.WriteLine("Created by Jeremy Flaugher" & vbCrLf) 

     ' User Prompts 
     Console.Out.Write("Please enter your Base Salary: $") 
     baseSalary = Console.In.ReadLine() 

     Console.Out.Write("Please enter your number of sales: ") 
     totalSales = Console.In.ReadLine() 

     Console.Out.Write("Please enter your Commission Rate in decimal form: ") 
     commissionRate = Console.In.ReadLine() 

     ' Processes 
     totalPay = (totalSales * commissionRate) + baseSalary 
     Console.Out.WriteLine("Your paycheck will total: " & (FormatCurrency(totalPay))) 
     Console.ReadKey() 
    End Sub 
End Module 

프로그램을 실행 한 후 계산기의 출력을 확인하고 있습니다. 기본 급여로 100 달러, 판매 수로 5 달러, 수수료율로 0.5 달러를 입력한다고 가정 해보십시오. 계산기에서 나는 총 지불액으로 $ 102.5를 받고 있지만, 프로그램을 실행할 때 나는 $ 102.00을 얻고있다. 이 문제를 어떻게 해결할 수 있습니까?

+0

올바른 포럼 태그가 사용되지 않은 경우 사과 드리며, Visual Basic은 태그를 선택할 때 옵션이 아닙니다. –

+0

올바르게 나오지 않는 것에 대한 몇 가지 예를 들려 줄 수 있습니까? 당신이 기대하고있는 것과 지금 무엇을 얻고 있는가? totalpay 수식이 정확 해 보입니다. 정확하게 값을 입력 했습니까? 예 : 커미션이 "10"을 입력하는 대신 10 % 인 경우 "0.1"입니다. – SqlRyan

+1

아무도 정수 급여를 가진 사람이 없습니다. Console.ReadLine()은 숫자가 아닌 문자열을 반환합니다. VB에서는 이러한 것들을 무시할 수 있지만 제대로 작동하지 않는 프로그램은 얻게됩니다. 이 점에 대해 선생님에게 이야기하십시오. –

답변

2

우선 모듈의 맨 위에 Option Strict On을 넣으므로 좋은 연습이며 일이 정확하지 않은 이유를 파악하기 위해 슬픔을 덜어줍니다. 귀하의 경우에는 귀하의 문제는 당신이 귀하의 계산의 일부로 십진수를 사용하지만 당신은 정수로 결과를 가하고 있다고 생각합니다. totalPay를 Decimal로 선언 해보십시오. 위의 링크에서 엄격한 옵션을 사용

장점 :

이 On으로 엄격한 옵션, 데이터 유형이 모든 프로그래밍 요소에 지정되었는지 Visual Basic의 검사를 설정

. 데이터 유형은 명시 적으로 지정되거나 로컬 유형 유추를 사용하여 지정 될 수 있습니다. 모든 프로그래밍 요소에 대한 데이터 유형을 지정하면 다음과 같은 이유로, 추천 :

  • 그것은 당신의 변수 및 매개 변수에 대한 인텔리 지원을 할 수 있습니다. 이렇게하면 유형 코드와 같이 해당 속성 및 다른 멤버를 볼 수 있습니다.
  • • 컴파일러에서 형식 검사를 수행 할 수 있습니다. 유형 검사 은 변환 오류로 인해 런타임에 실패 할 수있는 명령문을 찾는 데 도움이됩니다. 또한 이러한 메서드를 지원하지 않는 개체 의 메서드 호출을 식별합니다.
  • ? 코드 실행 속도가 빨라집니다. 이유 중 하나는 프로그래밍 요소에 대한 데이터 형식을 지정하지 않으면 Visual Basic 컴파일러가 Object 유형을 할당한다는 것입니다. 컴파일 된 코드가 일 때 Object와 다른 데이터 형식간에 앞뒤로 변환 할 수 있습니다.이 경우 은 성능을 저하시킵니다.
+0

고마워요! integer 대신 totalPay를 소수로 변경하는 것이 트릭을 만들었다. 이 프로그램은 VB 프로그램에서의 첫 번째 시도였습니다. 간단하게 보일지도 모르지만이 작은 프로그램을 작동 시키면 멋진 느낌이 들게되었습니다.도와 줘서 고마워! –

+0

@JeremyFlaugher 도움이되기를 기쁘게 생각합니다. –