TOP > Java > Mathクラス |
Mathクラス
java.langパッケージには、Java言語の根幹を成すクラスが定義されている。よって、java.langパッケージに含まれているクラスは自動的にインポートされる。
Mathクラスのメソッドは全て静的メソッドなので(static)、インスタンスを生成しなくても、使用できる。また円周率と自然対数の底の近似値も定義されている。
メソッド[public static long abs(long l)], メソッド[public static float abs(float f)]
引数の絶対値を返す。ちなみに、最小のint値または、最小のlong値を受け取った時は、負数を返す。
int型の最小値・・・Integer.MIN_VALUE
long型の最小値・・・Long.MIN_VALUE
abs()メソッドの例
class Test{ public static void main(String[] args){ System.out.println(Math.abs(-11111111)) ; System.out.println(Math.abs(Integer.MIN_VALUE)) ; System.out.println(Math.abs(Long.MIN_VALUE)) ; } } メソッド[public static double ceil(double a)]
引数の値以上で、計算上の整数と等しい、最小の (負の無限大にもっとも近い) double 値を返します。すなわち、小数点以下を切り上げるという事。
ceil()メソッドの例
class Test{ public static void main(String[] args){ System.out.println(Math.ceil(-100.3)) ;//-100.0 System.out.println(Math.ceil(100.3)) ;//101 } } メソッド[public static double floor(double a)]
引数の値以下で、計算上の整数と等しい、最大の (無限大にもっとも近い) double 値を返します。すなわち、小数点以下を切り下げるという事。
floor()メソッドの例
class Test{ public static void main(String[] args){ System.out.println(Math.floor(-100.3)) ;//-101.0 System.out.println(Math.floor(100.3)) ;//100.0 } } メソッド[public static xxxx max(xxxx a,xxxx b)]
2つの値を比較し、大きいほうの値を返す。同じ値同士の場合は、その値を返す。
xxxxは、double,float,int,long。
max()メソッドの例
class Test{ public static void main(String[] args){ System.out.println(Math.max(2,3)) ;//3 System.out.println(Math.max(299,299.999)) ;//299.999 System.out.println(Math.max(3000,3000)) ;//3000 } } メソッド[public static xxxx min(xxxx a,xxxx b)]
2つの値を比較し、小さいほうの値を返す。同じ値同士の場合は、その値を返す。
xxxxは、double,float,int,long。
min()メソッドの例
class Test{ public static void main(String[] args){ System.out.println(Math.min(2,3)) ;//2 System.out.println(Math.min(299,299.999f)) ;//299.0 System.out.println(Math.min(3000.0,3000)) ;//3000.0 } } メソッド[public static double random()]
0.0以上で、1.0より小さい正の符号の付いた double 値を返します。戻り値は、この範囲からの一様分布によって擬似乱数的に選択されます。
random()メソッドの例
class Test{ public static void main(String[] args){ for(int i = 0 ; i <10 ; i++) { System.out.println(Math.random()*10) ; } } } メソッド[public static int round(xxxx a)]
>引数にもっとも近い long を返します。結果は 1/2 を加えて floor メソッドで取り int にキャストして整数に丸められます。すなわち、結果は次の式の値になります。四捨五入の事。
xxxxは、double,float。
round()メソッドの例
class Test{ public static void main(String[] args){ System.out.println(Math.round(3.7)) ; System.out.println(Math.round(3.49999999)) ; System.out.println((int)Math.floor((3.7 + 0.5d))) ; } } メソッド[public static double sin(double a)]
指定された角度の正弦 (サイン) を返します。正弦とは、高さ/斜辺。パラメータはラジアンで表した角度。
sin()メソッドの例
class Test{ public static void main(String[] args){ System.out.println(Math.sin(Math.toRadians(30.0))) ; System.out.println(Math.sin(Math.toRadians(Double.NaN))) ;//NaNが返される } } メソッド[public static double cos(double a)]
指定された角度の余弦 (コサイン) を返します。余弦とは、底辺/斜辺。パラメータはラジアンで表した角度。
cos()メソッドの例
class Test{ public static void main(String[] args){ System.out.println(Math.cos(Math.toRadians(Double.NaN))) ;//NaNが返される System.out.println(Math.cos(Math.toRadians(1.0))) ; } } メソッド[public static double tan(double a)]
指定された角度の正接 (タンジェント) を返します。余弦とは、高さ/底辺。パラメータはラジアンで表した角度。
tan()メソッドの例
class Test{ public static void main(String[] args){ System.out.println(Math.tan(Math.toRadians(Double.NaN))) ;//NaNが返される System.out.println(Math.tan(Math.toRadians(45.0))) ; } } メソッド[public static double toDegrees(double angrad)]
ラジアンで計測した角度を、相当する度に変換します。通常、ラジアンから度への変換は正確ではありません。パラメータはラジアンで表した角度。
toDegrees()メソッドの例
class Test{ public static void main(String[] args){ System.out.println(Math.toDegrees(Math.PI * 2.0)) ; } } メソッド[public static double toRadians(double angdeg)]
度で計測した角度を、相当するラジアンに変換します。通常、度からラジアンへの変換は正確ではありません。パラメータは角度。
toDegrees()メソッドの例
class Test{ public static void main(String[] args){ System.out.println(Math.toRadians(360.0)) ; } } メソッド[public static double sqrt(double a)]
double 値の正しく丸めた正の平方根を返します。
sqrt()メソッドの例
class Test{ public static void main(String[] args){ System.out.println(Math.sqrt(16.0)) ; } } Mathクラスの特殊なケース
特殊なケースの例
class Test{ public static void main(String[] args){ double d ; //「NEGATIVE_INFINITY」負の無限大値を保持する定数 double d1 = Double.NEGATIVE_INFINITY ; // 「POSITIVE_INFINITY」正の無限大値を保持する定数 float f1 = Float.POSITIVE_INFINITY ; //NaNは非数。0で除算するなど、特別な演算の結果を表す double notnum = Double.NaN ; //非数NaNは何と(自分自身と)比較しても、「==」しくならない。 if(notnum != notnum){ System.out.println("NaNs not equal") ; } //public static boolean isNaN(double v) //指定された数値が非数 (NaN) である場合には true を、 //そうでない場合は false を返します。 //DoubleとFloatのみのメソッド if(Double.isNaN(notnum)){ System.out.println("notnum is NaN") ; } //負の無限大の平方根? //引数が NaN またはゼロより小さい場合、NaN が返されます d = Math.sqrt(d1) ; if(Double.isNaN(d)){ System.out.println("d = NaN") ; } //負の数の平方根なので、NaNが返される。 System.out.println(Math.sqrt(-16d)) ; //正のfloat double型を0で除算すると、正のINFINITY //ちなみにその他の型を0で除算すると、ランタイムエラー //ArithmeticExCeptionが起こる System.out.println(16d/0) ; //負のfloat double型を0で除算すると、負のINFINITY //ちなみにその他の型を0で除算すると、 //ArithmeticExCeptionが起こる System.out.println(-16d/0) ; //負の0正の0の時は、正の0を返す System.out.println("abs(-0) = " + Math.abs(-0)) ; } } |
Copyright 2007 ためになるホームページ All Rights Reserved. |