質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JUnit

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

4689閲覧

java BigDecimal 徐算 0で割った時のエラー

sakoo

総合スコア1

JUnit

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/10/14 10:00

前提・実現したいこと

BigDecimal型を用いた、徐算のプログラムを書いてみる練習をしており、junitのテストを実行するとassertionfailederrorが出ており、0で割ったらダメだというエラーが出ております。
自分ではコード状の間違えが分かりませんので教えていただきたいです。
宜しくお願い致します。

発生している問題・エラーメッセージ

エラーメッセージ assertionfailederror ### 該当のソースコード public static BigDecimal division(final BigDecimal a, final BigDecimal b) throws IllegalArgumentException { if(a == null || b == null || b == BigDecimal.valueOf(0)) { throw new IllegalArgumentException("無効です"); } BigDecimal number1 = a.divide(b, 8, RoundingMode.HALF_UP); return number1; } ```ここに言語名を入力 ソースコード

試したこと

if (b == BigDecimal.valOf(0))の部分を色々書き直してみましたが、変化がみられなく分からなくなってしまいました
宜しくお願い致します。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

0で割ったらダメだというエラー

該当だと思いますが・・・
参考:ゼロ除算
ゼロ除算 (division by zero)

投稿2020/10/14 11:16

編集2020/10/14 11:26
cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Javaの==は、同一のオブジェクトかどうかを判定しますので、値が同じかを調べたいときには(一般に)不適当です。

また、equalsスケールが等しいかどうかまで見られますので、「値が0か」をチェックしたい場合はcompareToを使ってください。

b.compareTo(BigDecimal.ZERO) == 0

投稿2020/10/14 10:06

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakoo

2020/10/15 01:31

返信有難うございました。 b.compareTo(BigDecimal.ZERO) == 0 にて解決する事が出来ました。 == ,equalsの概念をもう一度、見直してみようかと思います 有難うございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問