java.math の拡張機能
JDK 5.0
- 固定精度の浮動小数計算をサポートする
BigDecimal
クラスを追加しました。「JSR 13」を参照してください。
Math
および StrictMath
ライブラリには双曲線超越関数 (sinh、cosh、tanh)、立方根、常用対数などが含まれます。
- 16 進数の浮動小数のサポート - 特定の浮動小数値で正確かつ予測可能な仕様を許可するために、
Float
と Double
で、浮動小数リテラルと、浮動小数変換メソッドに対する文字列に、16 進表記を使用できます。
Java 2 SDK 1.4
- BigInteger の素数生成のパフォーマンス向上
BigInteger クラスに、素数を生成するための新しい static メソッド probablePrime が追加されました。従来は、BigInteger の素数を生成する方法は 1 つしかなく、メソッドの呼び出し側から、「確実性」(呼び出し側が許容できる、結果が素数でない確率の対数) を提供する必要がありました。しかし、提供する確実性の値が不適切だと、パフォーマンスが低下したり (確実性の値が高すぎる場合)、重大なバグが発生したり (値が低すぎる場合) することがありました。この新しい素数生成メソッドは、ANSI のドラフト仕様 (X9-80) に基づいて自動的に判別される適切な確実性の値を使用する、素数生成のための効率的なアルゴリズムを提供します。
Java 2 SDK 1.3
- BigInteger のパフォーマンス向上
- Pure Java のプログラミング言語コードにクラス java.math.BigInteger が実装し直されました。従来の BigInteger の実装は、基礎 C ライブラリを基にして実装されていました。高品質の VM で新しい実装を使用すると、古い実装と比較してすべての操作のパフォーマンスが向上します。パフォーマンスは 5 倍以上向上していますが、実行する操作およびオペランドの長さによって異なります。
- より堅牢な BigDecimal(String) コンストラクタ
BigDecimal(String) コンストラクタが拡張され、符号付き文字列 ("+2.71828" など) および指数表記法 ("1.23E-23" など) を入力として使用できるようになりました。