JavaCookbook-5.数値

2304 ワード

Javaはオブジェクトをカプセル化して文字列から数字への変換を実現し,文字列を結合して数字を文字列に変換する.Javaで採用されているアルゴリズムは擬似乱数アルゴリズムであり、一般的には、すべてのプログラミング言語の乱数は擬似乱数であり、ハードウェアプラットフォームだけが真の乱数を実現することができる.
小数点を持つ数値はデフォルトでDoubleタイプなので、Float f=3.0です.強制タイプがfloatタイプとして定義されていない限り、コンパイルはできません.float f=3.0 fです.あるいは強制的にfloatタイプに変換する:float f=(float)3.0;
数値からオブジェクトへの変換とオブジェクトから数値への変換は、新しい対応するオブジェクトとオブジェクトの解析方法で実現されます.次のようになります.
Integer I = newInteger(37);
int i2 =I.intValue();
System.out.println(I.toString());
System.out.println(i2);

Javaでは浮動小数点数は複雑で、整数をゼロにすると異常が放出されますが、浮動小数点数でゼロを除くと問題はありません.次のようになります.
System.out.println(5/0);//     
System.out.println(5.0/0);//  ,   Infinity,Infinity Double  Float   POSTIVE_INFINITY  。
System.out.println(-5.0/0);//  ,   -Infinity

NaNは任意の数ではない定数として定義され,それは前後に無限に延びて細分化し,自身と自身は等しくない.2つの浮動小数点数を比較する際には、一般的に、彼ら自身の公差が一定範囲内であるか否かを判断することによって、公差内であれば、そのため、様々な精度の問題を把握できない場合は、Doubleを用いて計算することができる.
浮動小数点数の切り込み演算を行う場合、直接強制変換の方法を採用し、タイプを末尾に切り取るだけで、Mathを採用する.round()メソッドは,真の四捨五入メソッドを実現することができる.デジタルフォーマットを行う場合、Javaがよく用いられる.textの下のクラス、例えば数値をフォーマットします:
NumberFormat nf= NumberFormat.getInstance();
nf.setMinimumIntegerDigits(3);
nf.setMinimumFractionDigits(2);
nf.setMaximumFractionDigits(4);
System.out.println(nf.format(3456.78901));

Integerクラスには、進数変換の際に呼び出す方法があります.
Integer i = newInteger(12);
System.out.println(i.toBinaryString(i));
System.out.println(i.toHexString(i));
System.out.println(Integer.valueOf("C",16));

ここでIntegerの方法ValueOfは任意の進数の文字列を整形に書き換えることができる.
配列には、連続配列と非連続配列の形式があります.連続配列は通常の数字で表され、非連続配列はBitSetの形式を採用することができ、この形式のデータ量はより小さく、初期状態は64の状態があり、いずれも真または偽を単独で設定することができ、状態集合を表すのに適している.インスタンスは次のとおりです.
BitSet bs = newBitSet();
                   bs.set(1);
                   bs.set(5);
                   for(inti=0;i<bs.size();i++)
                            System.out.println(bs.get(i));

特大データを処理するにはJavaを採用することができる.math.の中のBigIntegerとBigDecimalクラス.これらのクラスの読み出しデータは、文字列タイプのデータであることに注意してください.たとえば、次のようにします.
BigInteger bi =new BigInteger("123456789123456789123");
System.out.println(nf.format(bi));//nf      NumberFormat
System.out.println(bi);