7. 数値処理/数値の表現
この章では数値処理に関連するクラス、および数字の表現に関わるクラスについて説明します。
7.1. 数値処理
指数関数・三角関数といった基本的な数値処理を行う場合には、java.lang.Mathクラスかjava.lang.StrictMathクラスを利用します。2つのクラスが提供するメソッドに差は無く、違いは正確さと実行速度にあります。StrictMathはどのようなJavaの実行環境でも同じ結果を返すように作られているのに対し、Mathは多少の差は生じても、既存のライブラリ等を利用する事によって高速化を図るように実装されています。したがって厳密にどのような場合でも同じ結果を返さなければならない場合にはStrictMathを、そうでない場合にはMathを利用するようにして下さい。
以下にStrictMath, Mathが提供する主要なメソッド一覧を示します。複数の型に対応するため、オーバーローディングされているものについては省略しています。
三角関数double toDegrees(double a) | 指定されたラジアン表記の角度を、度数表記に変換します。 |
double toRadians(double a) | 指定された度数表記の角度を、ラジアン表記に変換します。 |
double cos(double a) | 指定された角度のコサインを返します。角度はラジアン表記で指定します。 |
double sin(double a) | 指定された角度のサインを返します。角度はラジアン表記で指定します。 |
double tan(double a) | 指定された角度のタンジェントを返します。角度はラジアン表記で指定します。 |
指数関数/対数関数
double exp(double a) | 自然対数の底 e を指定された数で累乗した値を返します。 |
double log(double a) | 指定された数の自然対数値を返します。底はeです。 |
double pow(double a, double b) | 1番目の引数を2番目の引数で累乗した値を返します。 |
double sqrt(double a) | 指定された数の平方根を返します。 |
その他
double abs(double a) | 指定された数の絶対値を返します。 |
double ceil(double a) | 指定された数以上で、その数に最も近い整数を返します。 |
double floor(double a) | 指定された数以下で、その数に最も近い整数を返します。 |
long round(double a) | 指定された数に最も近い整数を返します。0.5を加えてfloorを実行した結果と同じになります。 |
double max(double a, double b) | 2つの引数のうち、大きい方を返します。 |
double min(double a, double b) | 2つの引数のうち、小さい方を返します。 |
double random() | 0.0以上、1.0以下の擬似乱数を返します。内部ではjava.util.Randomクラスを用いています。 |
またMath, StrictMathは自然対数の底 e と円周率 π を表すクラス変数「E」と「PI」も提供しています。以下は引数で指定された円の面積を計算するプログラム例です。
double r = 3.5; double size = Math.pow(r, 2) * Math.PI;
(実習課題1)
横軸は角度、縦軸はコサインおよびサインの値であるグラフを表示するGUIアプリケーションを作成しなさい。横軸の角度は、度数表現にする事。