Lesson5 文字列と数値 -面倒なBigDecimal登場‐ Java,テックアカデミー

Lesson5 文字列と数値 -面倒なBigDecimal登場‐ Java,テックアカデミー

今日はLesson5を進めていきます。

基礎は終わり、これからは実際に使用されているコードを見ていくようです。

スポンサーリンク
広告

 新しいクラスやメソッド

Lesson5では新しいクラスやメソッドが登場します。

これ英単語みたいに一つずつ暗記しないと駄目なのかな?

ちょっとめんどくさいですね。

Lesson5,3 課題:RandomクラスとMathクラス

乱数の作成は、RandomクラスとMathクラスの2つの方法があるようです。

RandomクラスはnextInt()メソッド、Mathクラスはrandom()メソッドを使用しました。

ループしながら加算する方法は、for文と ○○ = ○○+ △△ でできるみたいです。

Lesson5,3 課題:BigDecimalによる計算

BigDecimalを使うことで、小数点以下の数字が続く数値の計算が正確に行えるようです。

桁数を指定して四捨五入することも可能。

とても便利そうですが、今までのクラスと少し書き方が違う印象です。

○○.setScale(桁数, BigDecimal.ROUND_HALF_UP)

これで桁数を指定して 、四捨五入。

0 の時少数第1位、1 の時少数第2位で四捨五入されます。

課題4で少し疑問。

円周を求める式をプログラムしろという物。

コードの数を減らすため,半径をBigDecimal変数radiusで宣言、定義。2を掛けて直径にします。

BigDecimal length = 2.multiply(radius.multiply(Math.PI));

とコーディングするとエラー。int型は使えませんとのこと。

どうやらBigDecimalはそのまま数値を打ち込んではいけないようですね。

いちいちBigDecimal型の変数に変換するのが面倒です。

BigDecimal ○○ = BigDecimal.valueOf(int型、double型) で変換できます。

そしてMath.PIも使えない。double型は使えませんとのこと。

BigDecimalクラスで使える円周率のメソッドがあるか調べてみましたが、なかなかヒットしません。

しょうがないので、Math.PIをBigDecimal型の変数にしました。

Lesson5,4 課題:鶴亀算

課題は「鶴亀算」をプログラム化しろというもの。

とりあえず脚の数200、全体数を50匹と仮定。

亀をx匹、鶴をy羽として、連立方程式を作ると、

x+y=50

4x+2y=200

これを解くと

x=(200-2*50)/2

y=50-x

となるので、x,y,脚の数,全体数をint型の変数にしてSystem.out.println(“いい感じの問題文と正解”)。

Lesson5,4 課題:博物館の入館料

丸め処理と問題文にあったためBigDecimalクラスを使用。

if文で場合分けをしている時に問題発生。

どうやらBigDecimalクラスでは、不等号(<,>)、等号(=)もそのまま使用できない模様。

そこで、compareToメソッドという物を使用しました。

この時”15″もそのまま使えませんので、BigDecimal型変数に変換しないといけませんでした。

BigDecimal面倒だぞ~。

Lesson5,4 課題:うるう年の判定

うるう年のルールはこんな感じ。

  • 西暦の年が 4 で割り切れる年は原則として「うるう年
  • ただし、100で割り切れたら「平年」とする
  • しかし、400で割り切れるなら「うるう年」とする

これはすぐに終わりました。

Lesson5,4 課題:BMIの計算

これはLesson4の課題を改変しました。そしてBMIの計算式はこれ。

{\displaystyle \mathrm {BMI} ={\frac {w}{h^{2}}}}

BMI18.5未満が低体重。18.5以上25未満が普通体重。25以上、30未満が肥満(1度)。

30以上、35未満が肥満(2度)。35以上、40未満が肥満(3度)。40以上が肥満(4度)。

割り切れなさそうなので、BigDecimalを使用して適当な桁数で丸めました。

ここで、ありがたい情報を得ました。

BigDecimal型変数の計算においてべき乗を行うpowメソッドは整数がそのまま使用可能です。

乗算のようにいちいちBigDecimal型変数にする必要はないようです。

また問題発生。

エラーの印は無いのに、コンパイルに赤字しか表示されません。

結局double型変数に変更して計算し直しました。

何が駄目なんだろうな~。

BigDecimal型で書いてしまうとdouble型に変更するのも一苦労です。

Lesson5感想と使用時間

Lesson5は目安15時間、使用時間も15時間ぴったりでした。

BigDecimalの使い方が厄介です。それ以外はこれまで習ってきたことの復習でした。

やはり章が進むと難しくなってきますね。がんばりましょう。

ランキング
スポンサーリンク
広告
広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする