2016-10-23 3 views
0

基本的な関心の計算を解決するために、このコードをビジュアルベーシックで記述しました。年末残高がリストボックスに表示され、最終合計がラベルに表示されます。私の問題は、リストボックスの値を2小数点に丸める方法を理解できないということです。私はいろんなことを試みましたが、これまで運がなかったので、何か助けに感謝します。このビジュアルベーシックコードでリストボックスの値を小数点以下2桁にする方法

パブリック・クラスfrmNestEgg プライベートサブbtnPrincipal_Click(オブジェクト、EventArgsのようEと送信者が)btnCalculate.Click を処理 "変数を宣言して初期化し

Dim Principal As Double = txtPrincipal.Text 
    Dim InterestRate As Double = txtInterestRate.Text/100 
    Dim Years As Integer 
    Dim FinalTotal As Double 
    Dim YrEndAmt As Double 

    Years = Integer.Parse(txtYears.Text) 

    'Calculate the interest from the principal payment over the years input to create a total value. 
    For Years = 1 To Years 
     FinalTotal = Principal * Math.Pow((1 + InterestRate), Years) 
     YrEndAmt = (FinalTotal - Principal) + Principal 
     lstYrEndAmt.Items.Add("Year" & Years & " Balance " & YrEndAmt) 
     lblFinalTotal.Visible = True 
     lblFinalTotal.Text = FinalTotal.ToString("f1") 
    Next 


End Sub 

Private Sub frmNestEgg_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

End Sub 

エンドクラス

答えて

1

あなたは

を使用することができます
Math.Round() 
... & Math.Round(YrEndAmt, 2).ToString() 

あなたのコードには欠点がありました。同じ変数のループYears ND終了条件

はそれほど変更:

For Years = 1 To Years 

へ:

Dim Years As Integer, year As Integer 

    For year = 1 To Years 

あなたの全体のコードは次のようになります。

Private Sub btnPrincipal_Click(sender As Object, e As EventArgs) Handles btnPrincipal.Click 
    Dim Principal As Double = txtPrincipal.Text 
    Dim InterestRate As Double = txtInterestRate.Text/100 
    Dim Years As Integer, year As Integer 
    Dim FinalTotal As Double 
    Dim YrEndAmt As Double 

    Years = Integer.Parse(txtYears.Text) 

    'Calculate the interest from the principal payment over the years input to create a total value. 
    For year = 1 To Years 
     FinalTotal = Principal * Math.Pow((1 + InterestRate), Years) 
     YrEndAmt = (FinalTotal - Principal) + Principal 
     lstYrEndAmt.Items.Add("Year" & year & " Balance " & Math.Round(YrEndAmt, 2).ToString()) 
     lblFinalTotal.Visible = True 
     lblFinalTotal.Text = FinalTotal.ToString("f1") 
    Next 
End Sub 
+0

これが正しいと私はあなたの助けをありがとうございました。問題は唯一の問題です。 – reconbobber

+0

このソリューションは、FinalTotal = Principal * Math.Pow(1 + InterestRate)、Year)の代わりに年を使う代わりに、このソリューションを使用していただきありがとうございます。私がこの変更を行ったとき、コードは正しく機能しました。私が年を取ったとき、それは毎年よりもFinalTotalの値と同じ値を出しました。 – reconbobber

関連する問題