質問: Java言語のBigDecimalが理解できず困っています、力を貸していただけないでしょうか。 1、四角形の面積計算をメインメソッド内で行う。 (縦×横です) 2、四角形の面積計算を別メソッド
回答: 2の「別メソッドに切り出し、メインメソッドから呼び出し」は、BigDecimalと直接は関係ありません。 Javaプログラムで実際に行う処理は、mainメソッドに直接書いて実行することも、別のメソッドに書いてそれをmainメソッドから呼び出して実行することもできます。 1では「mainメソッドに直接書け」、2では「別メソッドに書いて呼び出せ」と指定されています。 以下、サンプルコードです。 一応BigDecimalを使っています。tateとyokoというそのものズバリの変数を宣言し、それぞれ10と5で初期化します。 9行目: System.out.println("縦10、横5の四角形の面積は、" + tate.multiply(yoko)); これが、mainで直接計算するコード、 10行目: System.out.println("縦10、横5の四角形の面積は、" + sikaku(tate, yoko)); こちらが、メソッドsikakuを呼び出して結果を出力するコードです。 そして、17行目以降: public static BigDecimal sikaku(BigDecimal a, BigDecimal b){ return a.multiply(b); } これがメソッド定義の部分です。BigDecimalで受けて、BigDecimalを返します。 3については、コマンドライン引数で半径の値を受けて、面積と円周を出力するようにしています。 import java.math.BigDecimal; public class Menseki { public static void main(String[] args){ BigDecimal tate = new BigDecimal("10"); BigDecimal yoko = new BigDecimal("5"); BigDecimal hanke = new BigDecimal(args[0]); BigDecimal pai = new BigDecimal("3.14"); System.out.println("縦10、横5の四角形の面積は、" + tate.multiply(yoko)); System.out.println("縦10、横5の四角形の面積は、" + sikaku(tate, yoko)); System.out.println("円の面積は、" + pai.multiply(hanke.pow(2))); System.out.println("円周は、" + pai.multiply(hanke.add(hanke))); } public static BigDecimal sikaku(BigDecimal a, BigDecimal b){ return a.multiply(b); } } 実行例 D:\home\tmp> java Menseki 10 縦10、横5の四角形の面積は、50 縦10、横5の四角形の面積は、50 円の面積は、314.00 円周は、62.80