C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.12191 の関連記事表示

<< 0 >>
■12191  Re[1]: For nextについて
□投稿者/ Jitta -(2008/01/03(Thu) 21:46:02)
>
    No12183 (ドラゴン さん) に返信
    > 三度目の質問ですが、
    > 今回はFor...Nextを使って 銀行預金額を計算するというプログラム作成にあたっていたのですが
    > 2週間ほど、手詰まりをしております
    >
    > Dim StartAge1 As Single '銀行預金を始めた年齢
    > Dim StopAge1 As Single '銀行預金を終えた年齢
    > Dim AnDepo1 As Single '毎年の預金額
    > Dim IntRate1 As Double '銀行利子
    > Dim Age As Single '年
    > Dim IRA As Single '利子のパーセンテージ
    > Dim Profit As Single '利子増加額

     Single って。。。いや、まぁ、いいんだけど。。。


    > StartAge1 = Val(StartAge.Text) '銀行預金開始時の年齢
    > StopAge1 = Val(StopAge.Text) '銀行預金を終えた年齢
    > AnDepo1 = Val(AnDepo.Text) '毎年の預金額

     TextBox.Text は「文字」です。Single は「数値」です。数値と文字は違うものです。
    どっちかというと、Single.TryParse を使ってほしい。。。


    > IntRate1 = Val(IntRate.Text) / 100 '利子を100で割ってパーセンテージ化に

     ん。。。まぁ、あれです。デバッガで、IntRate1 がいくらになっているか、確認してください。
    おそらく、IntRate には、3% なら "3" という数値を入れていると思います。
    すると、これは「整数」に変換されます。
    割る数である 100 も整数です。ここは、「整数÷整数」の計算が行われ、結果が「整数」で取り出されます。
    その後、IntRate1 の型である Double に変換されます。結果、0.0 になっていると思います。



    >
    > For StartAge1 = StartAge.Text To StopAge.Text '銀行預金開始した年から終える年まで計算(開始時を1とする)

     文字を、ある文字から他の文字まで、変化させることはできません。
    (まぁ、VB は、勝手に変換してくれたりしちゃうんだ)



    > Age = StartAge1 + (StopAge1 - StartAge1) '銀行預金開始してから終了するまでの年数を計算

     (StopAge1 - StartAge1) が負数だったら、どうします?
    で、「銀行預金を始めた年齢+(銀行預金を終えた年齢−銀行預金を始めた年齢)」は、「銀行預金を終えた年齢」と同じになっていると思うのですが、どうでしょう?



    > AnDepo1 = AnDepo1 * Age '毎年の預金額×
    > IRA = AnDepo1 + Profit '合計預金額+利子
    > Profit = (AnDepo1 * IntRate1) '銀行の預金額を利子分割って、利子による増加額を計算

     んっと。。。ここって、こんな計算でいいんです?
    あ、Age の計算が間違っているんだった。



    >
    >
    > Result.Text = Result.Text & Age & vbTab & AnDepo1 & vbTab & IRA & vbTab & vbTab & Profit & vbNewLine '結果として、X歳時の合計預金額、合計預金+利子、合計利子を表示する

     ん。。。String.Format 使ってください。



    >
    > Next
    >
    > End Sub
    >
    > 問題点1: Ageの数値が全て同じ()
    > 問題点2: 利子が小数点2個以内に納まらない
    >
記事No.12183 のレス /過去ログ26より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -