- PR -

計算メソッドについてpow

1
投稿者投稿内容
Sum+Go
常連さん
会議室デビュー日: 2006/03/11
投稿数: 40
投稿日時: 2006-09-05 12:25
べき乗の計算方法がわかりません。アドバイスを頂けるとありがたいです。よろしくお願いします。

pt=288
pm=100000
ra=0.003

//分母
BigDecimal bunbo = ra.multiply(new BigDecimal(Math.pow(BigDecimal.valueOf(1).add(ra).doubleValue(), pt.doubleValue())));

//分子
BigDecimal bunshi = new BigDecimal(Math.pow(BigDecimal.valueOf(1).add(ra).doubleValue(), pt.doubleValue()));
bunshi=bunshi.subtract(BigDecimal.ValueOf(1));

BigDecimal bo = pm.multiply((bunshi).divide(bunbo.BigDecimal.ROUND_HALF_UP));

br = br.divide(BigDecimal.valueOf(100000),0,BigDecimal.ROUND_DOWN);
br = br.multiply(BigDecimal.valueOf(100000);

return br;

計算結果がaの7.4乗(例)などのように指数に小数点がきてしまったりします。
計算方法に間違えがあるのだと思いますが、上記の式で実際にどのように数値が得られるのか
お手数ですが計算式ごとに教えて頂けないでしょうか。

よろしくお願いします。
ぷさいくろう
ぬし
会議室デビュー日: 2006/08/30
投稿数: 1034
投稿日時: 2006-09-05 12:33
引用:

計算結果がaの7.4乗(例)などのように指数に小数点がきてしまったりします。
計算方法に間違えがあるのだと思いますが、上記の式で実際にどのように数値が得られるのか
お手数ですが計算式ごとに教えて頂けないでしょうか。

よろしくお願いします。



電卓で計算
および
java "べき乗"
で検索
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-09-05 13:13
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Math.html#pow(double, double)

使い方がよくわからないのであれば、一度にごちゃごちゃと処理せずに
Math.pow単体で動作をみましょう。

根本的な突っ込みとして
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/math/BigDecimal.html#pow(int)
こちらを使うべきじゃないか、というのはありますが。

引用:

//分母
BigDecimal bunbo = ra.multiply(new BigDecimal(Math.pow(BigDecimal.valueOf(1).add(ra).doubleValue(), pt.doubleValue())));



と一気にいろいろと計算していますが、計算の途中結果は合っていますか?
一行にまとめずに中間結果を確認しながら組むとよいですよ。
過程ごとにデバッグすればすぐに何が悪いのかわかるものです。
1

スキルアップ/キャリアアップ(JOB@IT)