ここから本文です

javaでプログラムを書いてコマンドプロンプトで複利計算をしようとしてるのですが...

kan********さん

2015/6/522:20:20

javaでプログラムを書いてコマンドプロンプトで複利計算をしようとしてるのですがうまく行きません

どこが間違ってるのかどう修整すればいいのか教えてくださらないでしょうか

機械に弱くプログラミングもほとんどやったことない初心者です。

補足http://imgur.com/uRRbGXY

すいません画像が小さかったので上げておきました

コマンドプロンプト,複利計算,プログラミング,プログラム,Java,BigDecimal,行数

閲覧数:
443
回答数:
2
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

yes********さん

2015/6/601:35:15

質問に回答したいのですが、、、、ちょっと厳しいです。

>複利計算

申し訳ございません。
ここで回答する皆さんは、全知全能ではありません。
「複利計算」という単語だけで、課題の仕様全部を判るわけではありません。

なんとなく想像はつくのですが、きっちりと回答するにはもう少しかみ砕いて欲しいです。
こんな感じの入力したら、こんな答えが出て欲しいと言った例でもあるとありがたいです。
たとえば、元金10,000円、利率1%、年数10年とか入力したら、
1年後10,100円、2年10,201円、10,303.01、、、、みたいな計算になるのでしょうか。
たとえば、元金10,000円、利率3%、年数5年とか入力したら、、、、

こういった手計算してから課題を取り組むことで、プログラミングもしやすいと思いますよ。

>うまく行きません
課題の提示にも絡むのですが、質問する上で「うまく行きません」「だめでした」という言い方は良くないんです。
“どう”うまく行かないのかも書いて欲しいのです。

何行目でコンパイルエラーが発生した?
何行目で何の例外が発生した?
入力したはずの値が正しく認識されなかった?
期待した行数が出力されなかった?
行数は正しいけど、ここの行の出力が期待した形と異なった?

どれをとっても「うまく行かない」なんです。
そこを明確に示してくれませんか。

返信をお待ちしています。

  • 質問者

    kan********さん

    2015/6/604:34:40

    回答ありがとうございます。
    説明不足で申し訳ありませんでした。

    あげてくださった例のように元金、利率、年数を入れると1年後合計2年後合計...のような形にしたいです。
    コンパイル自体は成功し、入力もうまく行ったのですが出力結果が違ったものになってしまいました。
    コンパイルしたものを起動し元金10,000、利率1%、年数5を入れたところ1年目505000.0 2年目2550250.0と違う数字が出てきてしまいます。
    13行目か16行目、もしくは両方の計算式に間違いがあると思います。
    自分でも色々式を入れなおし試したのですがどうしてもうまくいきませんでした。
    よかったらお力添えのほうお願いいたします

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

ベストアンサー以外の回答

1〜1件/1件中

Clearさん

2015/6/614:05:04

私も素人なのですが、そのままdoubleの型を使ってお金の計算をさせるのは辞めた方が良いでしょう。

「近い値」は出せても正確な値は出せません。
floatやdouble型はCG表示等、多少の誤差が出ても気にしなくて良いプログラムに使用すると高速になりますが、厳密な計算はできません。
しかも実行結果は環境によって異なります。

小数点の計算をやるからといってすぐにfloatやdoubleを使ってはいけない
http://d.hatena.ne.jp/j5ik2o/20091024/1256369305

厳密な計算をさせるにはBigDecimal等を使う必要があるようですよ。

例)float型で0.01に0~100を掛けて出力させた場合
for(int i = 0; i <100 ; i++){
float a = 0.01f;
System.out.println((float)a*i);
}
(私の環境での実行結果)
0.0
0.01
0.02
0.03
0.04
0.049999997
0.06
0.07
0.08
0.089999996
0.099999994
0.11

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる