浮動小数点数は、整数ではない数を表現するのに便利です。
浮動小数点数の正確な範囲は計算機に依存します。
使用している計算機のC言語のデータ型double
の範囲と同じです。
浮動小数点数の入力構文は、小数点(に続けて1桁以上の小数部)または指数、 あるいは、その両方が必要です。 たとえば、‘1500.0’、‘15e2’、‘15.0e2’、 ‘1.5e3’、‘.15e4’は、同じ1500という値の 浮動小数点数を書き表す5つの方法です。 どれも、まったく等価です。 負の浮動小数点数を書くには、‘-1.0’のようにマイナス符号を使います。
現代の計算機はIEEEの浮動小数点数規格に基づいています。
この規格では、浮動小数点数の値には正の無限大と負の無限大があります。
また、NaNすなわち『非数値』(not-a-number)と呼ばれる値の種類もあります。
算術関数は、正しい答えがないときには、このような値を返します。
たとえば、(sqrt -1.0)
はNaNを返します。
実用的には、Emacs Lispでは異なるNaNの値に重要な違いはなく、
特定の場面で正確にはどのNaNの値を使うかの規則もないので、
Emacs Lispではそれらを区別しようとはしません。
浮動小数点数の入力構文はつぎのとおりです。
さらに、IEEEの浮動小数点数では値-0.0
を普通のゼロと区別します
(しかし、equal
と=
は、これらを等しい値と扱う)。
浮動小数点数の2進指数を取り出すには(あるいは、整数の対数を予測するには)、
logb
を使います。