X
この記事の共著者 : Nicole Levine, MFA. ニコール・レヴィンはwikiHowに勤務するテクノロジーライター兼編集者です。技術文章の作成に関し20年以上の経験があり、現在まで大手のウェブホスティング会社やソフトウェア開発会社のチームリーダーを務めてきました。ポートランド州立大学にてクリエイティブライティングの修士号を取得し、様々な教育施設にて作文、小説創作、Zine(個人制作の冊子)の作り方について講義を行っています。
この記事では、Javaで小数の除算を行う3つの方法を紹介します。2つの整数(小数ではない)を除算し、四捨五入前の答えを得たい場合は、オペランドのどちらか一方をdouble型にキャストしましょう。2つの小数を除算(または整数を小数で除算、小数を整数で除算)したい場合は、単純なdouble型の除算を使用して小数の結果を得ることができます。大きな数値を扱う場合や、極めて正確な数値が必要な場合は、浮動小数点演算の代わりに BigDecimal Javaクラスを使用しましょう。
ステップ
方法 1
方法 1 の 3:2つの整数から小数の結果を得る
方法 1
-
1Javaは他のプログラミング言語と同様、デフォルトで整数の除算を使用します。2つの整数を除算して余りが出た場合は、余りが切り捨てられ、整数が答えとして残ります。2つの整数を除算して小数の結果を得る必要がある場合は、演算を行う前に分子または分母のどちらか一方を
double
型にキャストしましょう。[1] 以下の例では、aをdouble
型にキャストして小数の結果を得ようとしています。int a = 55; int b = 25; double r = (double) a / b // 答えは2.2です.
広告
方法 2
方法 2 の 3:2つの小数を除算する(double型)
方法 2
-
1小数を別の小数で除算する場合は、double型の除算を使用します。[2] 同様に、2つのオペランドのどちらか一方が整数(小数ではない)であっても、もう一方のオペランドがdouble型であれば、結果は小数のままになります。以下は、2つの小数をdouble型の除算で除算する簡単な例です。
double x = 10.5; double y = 2.5; x / y // 答えは4.2です
方法 3
方法 3 の 3:BigDecimalで最も正確な小数の結果を得る
方法 3
-
1通貨を扱う場合や、最も正確な少数の結果が必要な場合は、BigDecimalクラスを使用しましょう。浮動小数点演算(
double
型で行うもの)は、double
型によって数値が正確な表現(固定小数点数)ではなく分数や指数のバイナリ表現で格納されるため、精度が低くなります。[3] 固定小数点数を扱えるようにしたい場合は、BigDecimal
を使用しましょう。以下の例では、BigDecimalを使用して2つの数値を除算して正確な結果を得ようとしています。BigDecimal bdec = new BigDecimal("706"); BigDecimal bdecRes = bdec.divide(new BigDecimal("20")); System.out.println("Divide: " + bdecRes); // MathContextで除算する MathContext mc = new MathContext(2, RoundingMode.FLOOR); BigDecimal bdecMath = bdec.divide(new BigDecimal("20"), mc); System.out.println("Divide with MathContext: " + bdecMath); // 最初の結果は45.25となり、2番目の結果は45となります。
- BigDecimalを使用する場合は、
RoundingMode
を指定しないと結果を得ることができません。RoundingModeには、UP
(0から離れるように丸める)、DOWN
(0に近づくよう丸める)、CEILING
(正の無限大に近づくように丸める)、FLOOR
(負の無限大に近づくように丸める)、HALF_UP
(最も近い数字に丸める、両隣りの数字が等距離の場合は切り上げる)、HALF_DOWN
(最も近い数字に丸める、両隣りの数字が等距離の場合は切り捨てる)、HALF_EVEN
(最も近い数字に丸める、両隣りの数字が等距離の場合は偶数側に丸める)、UNNECESSARY
(正確な結果が必要である)を指定することができます。[4]
広告 - BigDecimalを使用する場合は、
出典
この記事は役に立ちましたか?
広告