public class PackedDecimal extends ByteStreamDataSupport
入力時にはバイト配列(パック10進数)をBigDecimal型に変換し、 出力時にはオブジェクト(BigDecimalや文字列型の数値など)をバイト配列(パック10進数)に変換して返却する。
出力対象のデータ(#convertOnWrite(Object)の引数)として使用できるオブジェクトの種類を以下に示す。nullは許容しない。
出力対象のデータに小数点が含まれる場合、小数点を取り除いた値に変換する。
また、出力対象のデータがBigDecimalの場合はスケーリングした値に変換する。
以下に出力例を示す。
出力対象データの型 | 出力対象データの値 | 出力対象データの変換後の値 |
---|---|---|
Integer | 123.45 | 12345 |
String | "123.45000" | 12345000 |
BigDecimal | 123.45 | 12345 |
BigDecimal(scale=5) | 123.45 | 12345000 |
本クラスが出力対象のデータの桁数として許容するのは18桁までの数値である。
この桁数とは、出力対象のデータから小数点を取り除き、BigDecimalの場合はスケールに従い変換した後の桁数のことを指す。
(※処理を高速化するために内部的に出力対象データをlong型に変換し扱っているので、このような桁数の制約を設けている)
getSize, setSize
convertOnRead, convertOnWrite, getField, init, initialize, removePadding