22.10 SQLライブラリ:SQL.Numericストラクチャ
SQL.Numericストラクチャは, 標準SQLで最大の精度を持つ数値型NUMERICをエミュレートする.
SQL.Numericのシグネチャは以下の通りである.
structure SQL : sig
structure Numeric : sig
type num = SQL.numeric
val toLargeInt : num -> LargeInt.int
val fromLargeInt : LargeInt.int -> num
val toLargeReal : num -> LargeReal.real
val fromLargeReal : LargeReal.real -> num
val toInt : num -> Int.int
val fromInt : Int.int -> num
val toDecimal : num -> IEEEReal.decimal_approx
val + : num * num -> num
val - : num * num -> num
val * : num * num -> num
val quot : num * num -> num
val rem : num * num -> num
val compare : num * num -> order
val < : num * num -> bool
val <= : num * num -> bool
val > : num * num -> bool
val >= : num * num -> bool
val ~ : num -> num
val abs : num -> num
val toString : num -> string
val fromString : string -> num option
end
end
これらの関数の意味は Basis LibraryのIntおよびIntInfストラクチャに定義されている 同名の関数と同じである. toString関数は小数点以下に最大で16,383文字を出力するかも しれないことに注意せよ.
SQL.Numericストラクチャはあくまでデータベースとの データのやり取りのために用意されたものであり, 一般的な無限精度の10進数ライブラリを提供することを意図していない. 数値演算の性能を追求して実装されていないため, これらの関数は実用に適さないほど遅い可能性がある.
なお,SQL.numeric型の別名として SQL.decimal型が, SQL.Numericの別名としてSQL.Decimalストラクチャが, それぞれ提供されている.