Java BigDecimalとIEEE-754r間を変換するライブラリ「Decimal-java」リリース
Decimal-javaは、JavaのBigDecimalオブジェクトをIEEE-754r(IEEE-754-2008)形式のバイナリ表現に変換し、逆もできるライブラリです。Firebirdデータベースバージョン4.0で導入されたSQL DECFLOAT型に対応するために開発されました。このライブラリはMITライセンスで公開されており、Java 17以上が必要です。Decimal32, Decimal64, Decimal128のバイナリ表現をサポートしており、BigDecimalオブジェクトからこれらの形式に変換したり、逆もできます。また、OverflowHandlingインターフェースを使用してオーバーフロー時の動作を制御することも可能です。
背景
Decimal-javaは、Firebirdデータベースバージョン4.0で導入されたSQL DECFLOAT型に対応するために開発されました。この型は精度が16と34桁のバイナリ表現を使用しており、既存のJavaライブラリでは対応されていませんでした。
重要用語解説
BigDecimal: java.mathパッケージに含まれる任意精度の数値を表すクラス。
IEEE-754r: 浮動小数点数(浮動小数点)の標準化された表現形式。Decimal-javaはIEEE-754-2008準拠です。
Decimal32, Decimal64, Decimal128: それぞれ32ビット、64ビット、128ビットの精度を持つバイナリ表現をサポートするクラス。
OverflowHandling: オーバーフロー時の動作を制御するためのインターフェース。THROW_EXCEPTIONやROUND_TO_INFINITYなどの実装を提供します。
Jaybird: Firebirdデータベース用のJDBCドライバ。
今後の影響
Decimal-javaは、Firebirdデータベースとの連携を強化し、より高精度の数値処理を可能にします。また、他のJavaアプリケーションでもIEEE-754r形式のバイナリ表現が必要な場合に利用できる汎用的なライブラリとなります。