 Syntax:

decodefloat
float
significand, exponent, sign
scalefloat
float integer
scaledfloat
floatradix
float
floatradix
floatsign
float1 &optional float2
signedfloat
floatdigits
float
digits1
floatprecision
float
digits2
integerdecodefloat
float
significand, exponent, integersign
 Arguments and Values:

digits1  a nonnegative integer.
digits2  a nonnegative integer.
exponent  an integer.
float  a float.
float1  a float.
float2  a float.
floatradix  an integer.
integer  a nonnegative integer.
integersign  the integer 1,
or the integer 1.
scaledfloat  a float.
sign  A float of the same type as float
but numerically equal to 1.0 or 1.0.
signedfloat  a float.
significand  a float.
 Description:

decodefloat computes three values that characterize
float.
The first value is of the same type
as float and
represents the significand.
The second value represents the exponent
to which the radix (notated in this description by b) must
be raised to obtain the value that, when multiplied with the first
result, produces the absolute value of float.
If float is zero, any integer value may be returned,
provided that the identity shown for scalefloat holds.
The third value
is of the same type as float
and is 1.0 if float is greater
than or equal to zero or 1.0 otherwise.
decodefloat
divides float by an integral power of b
so as to bring its value between 1/b (inclusive) and 1 (exclusive),
and returns the quotient as the first value.
If float is zero, however, the result
equals the absolute value of float (that is, if there is a negative
zero, its significand is considered to be a positive zero).
scalefloat returns
(* float (expt (float b float)
integer)) , where b is the radix of the floatingpoint
representation. float is not necessarily between 1/b and 1.
floatradix returns
the radix of float.
floatsign returns a number z such
that z and float1 have the same sign and also such that
z and float2 have the same absolute value.
If float2 is not supplied, its value is (float 1 float1).
If an implementation
has distinct representations for negative zero and positive zero,
then (floatsign 0.0) 1.0.
floatdigits returns
the number of radix b digits
used in the representation of float (including any implicit
digits, such as a "hidden bit").
floatprecision
returns
the number of significant radix b digits present in float;
if float is a float
zero, then the result is an integer zero.
For normalized floats,
the results of floatdigits and floatprecision are the same,
but the precision is less than the number of representation digits
for a denormalized or zero number.
integerdecodefloat computes three values that characterize
float 
the significand scaled so as to be an integer,
and the same last two
values that are returned by decodefloat.
If float is zero, integerdecodefloat returns
zero as the first value.
The second value bears the same relationship to the first value
as for decodefloat:
(multiplevaluebind (signif expon sign)
(integerdecodefloat f)
(scalefloat (float signif f) expon)) ==(abs f)
 Examples:

;; Note that since the purpose of this functionality is to expose
;; details of the implementation, all of these examples are necessarily
;; very implementationdependent. Results may vary widely.
;; Values shown here are chosen consistently from one particular implementation.
(decodefloat .5) 0.5, 0, 1.0
(decodefloat 1.0) 0.5, 1, 1.0
(scalefloat 1.0 1) 2.0
(scalefloat 10.01 2) 2.5025
(scalefloat 23.0 0) 23.0
(floatradix 1.0) 2
(floatsign 5.0) 1.0
(floatsign 5.0) 1.0
(floatsign 0.0) 1.0
(floatsign 1.0 0.0) 0.0
(floatsign 1.0 10.0) 10.0
(floatsign 1.0 10.0) 10.0
(floatdigits 1.0) 24
(floatprecision 1.0) 24
(floatprecision leastpositivesinglefloat) 1
(integerdecodefloat 1.0) 8388608, 23, 1
 Affected By:

The implementation's representation for floats.
 Exceptional Situations:

The functions decodefloat, floatradix, floatdigits,
floatprecision, and integerdecodefloat should signal an error
if their only argument is not a float.
The function scalefloat should signal an error if its first argument
is not a float or if its second argument is not an integer.
The function floatsign should signal an error if its first argument
is not a float or if its second argument is supplied but is
not a float.
 Notes:

The product of the first result of decodefloat or integerdecodefloat,
of the radix raised to the power of the second result, and of the third result
is exactly equal to the value of float.
(multiplevaluebind (signif expon sign)
(decodefloat f)
(scalefloat signif expon))
==(abs f)
and
(multiplevaluebind (signif expon sign)
(decodefloat f)
(* (scalefloat signif expon) sign))
== f
 Allegro CL Implementation Details:

None.