前提・実現したいこと
float型やdouble型を利用せず、BigDecimalを使用したreturn文を作成したいです。
内容としては、自作メソッド「testMethod」に「a/b」の計算内容を代入して、下のmain内で、30・50の数値を指定して「30/50」の小数点以降の割り算を行いたいです。
現状下記エラーが解決できておりません。
BigDecimal型のみを使用した、return文の表示方法について教えて頂きたいです。
よろしくお願いいたします。
発生している問題・エラーメッセージ
Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
該当のソースコード
Java
1package Java; 2 3import java.math.BigDecimal; 4 5public class Java{ 6 static BigDecimal testMethod(BigDecimal a,BigDecimal b) { 7 8 BigDecimal c = a.divide(b); 9 10 return c; 11 12} 13 public static void main(String[] args) { 14 // TODO 自動生成されたメソッド・スタブ 15 16 BigDecimal num3 = new BigDecimal("30"); 17 18 BigDecimal num4= new BigDecimal("55"); 19 20 BigDecimal wari = testMethod(num3,num4); 21 22 System.out.println(wari); 23 } 24}
試したこと
Java
1public class Java{ 2 static BigDecimal testMethod(BigDecimal a,BigDecimal b) { 3 BigDecimal a = new BigDecimal("30"); 4 BigDecimal b = new BigDecimal("50"); 5 BigDecimal b3 = a.divide(b); 6 7 8 return b3; 9}
先に割り算を行ってから、処理結果である変数b3をdivideメソッドにリターンさせる方法を試みましたが、上記と同様のエラーがでてしまいます。
また下記のように「return a.divide(b);」と割り算を一行にまとめてみても同様のエラーとなってしまいました。
Java
1public class Java{ 2 static BigDecimal testMethod(BigDecimal a,BigDecimal b) { 3 4 return a.divide(b); 5} 6 7 public static void main(String[] args) { 8 // TODO 自動生成されたメソッド・スタブ 9 10 BigDecimal num3 = new BigDecimal("30"); 11 12 BigDecimal num4= new BigDecimal("55"); 13 14 BigDecimal wari = testMethod(num3,num4); 15 16 System.out.println(wari); 17 } 18}
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー