0

私がやろうとしているのは、単純な給与計算機を作成することだけです。ユーザーは baseSalary、totalSales、commissionRate を入力します。プログラムは正常に実行されますが、totalPay が正しく表示されません。どんな助けでも素晴らしいでしょう。これはおそらく簡単な修正ですが、これは私のVBクラスの2日目に過ぎないので、これを修正する方法がわかりません. 与えられた助けを前もってありがとう!

'   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 ドルになります。どうすればこれを修正できますか。

4

1 に答える 1

2

まず最初に、モジュールの上部にOption Strict Onを配置します。これは良い習慣であり、物事が正しくない理由を理解しようとする苦痛を軽減します。あなたの場合、あなたの問題は、計算の一部として小数を使用しているが、結果を整数に入れていることだと思います。totalPayをDecimalとしても宣言してみてください。

上記のリンクからOptionStrictを使用する利点:

Option StrictをOnに設定すると、VisualBasicはすべてのプログラミング要素にデータ型が指定されていることを確認します。データ型は明示的に指定することも、ローカル型推論を使用して指定することもできます。次の理由から、すべてのプログラミング要素にデータ型を指定することをお勧めします。

  • これにより、変数とパラメーターのIntelliSenseサポートが有効になります。これにより、コードを入力するときに、それらのプロパティと他のメンバーを確認できます。
  • •コンパイラが型チェックを実行できるようにします。型チェックは、型変換エラーが原因で実行時に失敗する可能性のあるステートメントを見つけるのに役立ちます。また、それらのメソッドをサポートしていないオブジェクトのメソッドへの呼び出しも識別します。
  • •コードの実行を高速化します。この理由の1つは、プログラミング要素のデータ型を指定しない場合、VisualBasicコンパイラがそれにオブジェクト型を割り当てるためです。コンパイルされたコードは、オブジェクトと他のデータ型の間で相互に変換する必要がある場合があり、パフォーマンスが低下します。
于 2013-01-18T04:43:55.170 に答える