% 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)
が含まれます。