Next: Float Arithmetic, Previous: Simultaneous Float Init & Assign, Up: Floating-point Functions [Index]
Convert op to a double
, truncating if necessary (i.e. rounding
towards zero).
If the exponent in op is too big or too small to fit a double
then the result is system dependent. For too big an infinity is returned when
available. For too small 0.0 is normally returned. Hardware overflow,
underflow and denorm traps may or may not occur.
Convert op to a double
, truncating if necessary (i.e. rounding
towards zero), and with an exponent returned separately.
The return value is in the range 0.5<=abs(d)<1 and the
exponent is stored to *exp
. d * 2^exp is the (truncated) op value. If op is zero,
the return is 0.0 and 0 is stored to *exp
.
This is similar to the standard C frexp
function (see Normalization
Functions in The GNU C Library Reference Manual).
Convert op to a long
or unsigned long
, truncating any
fraction part. If op is too big for the return type, the result is
undefined.
See also mpf_fits_slong_p
and mpf_fits_ulong_p
(see Miscellaneous Float Functions).
Convert op to a string of digits in base base. The base argument may vary from 2 to 62 or from -2 to -36. Up to n_digits digits will be generated. Trailing zeros are not returned. No more digits than can be accurately represented by op are ever generated. If n_digits is 0 then that accurate maximum number of digits are generated.
For base in the range 2..36, digits and lower-case letters are used; for -2..-36, digits and upper-case letters are used; for 37..62, digits, upper-case letters, and lower-case letters (in that significance order) are used.
If str is NULL
, the result string is allocated using the current
allocation function (see Custom Allocation). The block will be
strlen(str)+1
bytes, that being exactly enough for the string and
null-terminator.
If str is not NULL
, it should point to a block of
n_digits + 2 bytes, that being enough for the mantissa, a
possible minus sign, and a null-terminator. When n_digits is 0 to get
all significant digits, an application won’t be able to know the space
required, and str should be NULL
in that case.
The generated string is a fraction, with an implicit radix point immediately
to the left of the first digit. The applicable exponent is written through
the expptr pointer. For example, the number 3.1416 would be returned as
string "31416"
and exponent 1.
When op is zero, an empty string is produced and the exponent returned is 0.
A pointer to the result string is returned, being either the allocated block or the given str.
Next: Float Arithmetic, Previous: Simultaneous Float Init & Assign, Up: Floating-point Functions [Index]