% System-Class FLOAT
System Class FLOAT
浮動小数は、s*f*b^{e-p}のフォームで表される
数学的な有理数(Common Lispのrationalではなく)です。
ただし、sは符号であり+1か-1、
bは基数であり1より大きい整数、
pは浮動小数の精度(基数-bの数値)であり正の整数、
fは仮数でありb^{p-1}からb^{p}-1(含む)の間の正の整数、
eは指数であり整数です。
pの値とeの区間は、
実装自身と実装内における浮動小数の型に依存します。
加えて、浮動小数のゼロもまた実装依存であり
「マイナスゼロ」が存在できます。
もしマイナスゼロが存在しないときは、
0.0と-0.0は両方とも単純に浮動小数のゼロとして解釈されます。
(= 0.0 -0.0)は常にtrueです。
もしマイナスゼロが存在するとき、
(eql -0.0 0.0)はfalseであり、
そうではないときはtrueです。
型short-float, single-float,
double-float, long-floatは、
型floatのサブタイプです。
これらのうちどの2つも疎の型か同じ型のどちらかです。
もし同じ型のとき、
上記の順番の中でそれらの間にある他の型もまた同じ型です。
例えば、もし型single-floatと型long-floatが同じ型のとき、
型double-floatもまた同じ型でなければなりません。
省略可能
float [ lower-limit [ upper-limit ] ]
lower-limit, upper-limit -
型floatの区間指定子。
lower-limitとupper-limitの
それぞれのデフォルト値はシンボル*。
これは、浮動小数の区間を lower-limitとupper-limitによって定義することを示します。
figure_2-9,
2.3.2. トークンから数の構築,
22.1.3.1.3. 浮動小数の印字
全ての数学的な整数は、
Common Lispの実数realで表現できるだけでなく、
浮動小数の複素数complex floatでもまた表現できます。
例えば、数学的な数の1の表現として可能なものは、
整数の1、浮動小数の1.0、複素数の#C(1.0 0.0)が含まれます。