Common Lisp の標準には、任意の正確さを持つ float はありません。
Common Lisp は、標準で 4 つの float 型を定義しています: SHORT-FLOAT
、SINGLE-FLOAT
、。DOUBLE-FLOAT
LONG-FLOAT
関数を使用して浮動小数点数への比率を強制することができますCOERCE
(LispWorks の例):
CL-USER 1 > (coerce (/ 1 7) 'double-float)
0.14285714285714285D0
またはLONG-FLOAT
CLISPの
[1]> (coerce (/ 1 7) 'long-float)
0.14285714285714285714L0
より長い浮動小数点数で計算するには、Common Lisp の拡張が必要です。GNU CLISPには移植性のない拡張機能があり、(バイナリ) 桁数を設定できます。
(SETF (EXT:LONG-FLOAT-DIGITS) n)
例:
[3]> (SETF (EXT:LONG-FLOAT-DIGITS) 1000)
1000
[4]> (coerce (/ 1 7) 'long-float)
0.142857142857142857142857142857142857142857142857142857
142857142857142857142857142857142857142857142857142857
142857142857142857142857142857142857142857142857142857
142857142857142857142857142857142857142857142857142857
142857142857142857142857142857142857142857142857142857
142857142857142857142857142857142857143L0