The Open Group Base Specifications Issue 7
IEEE Std 1003.1-2008, 2016 Edition
Copyright © 2001-2016 The IEEE and The Open Group

#### NAME

> modf, modff, modfl - decompose a floating-point number

#### SYNOPSIS

> ``#include <math.h>
> double modf(double` x`, double *`iptr`);
> float modff(float` value`, float *`iptr`);
> long double modfl(long double` value`, long double *`iptr`);
> ``

#### DESCRIPTION

> [CX] The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of POSIX.1-2008 defers to the ISO C standard.

> These functions shall break the argument x into integral and fractional parts, each of which has the same sign as the argument. It stores the integral part as a double (for the modf() function), a float (for the modff() function), or a long double (for the modfl() function), in the object pointed to by iptr.

#### RETURN VALUE

> Upon successful completion, these functions shall return the signed fractional part of x.

> [MX] If x is NaN, a NaN shall be returned, and *iptr shall be set to a NaN.

> If x is ±Inf, ±0 shall be returned, and *iptr shall be set to ±Inf.

#### ERRORS

> No errors are defined.

The following sections are informative.

#### EXAMPLES

> None.

#### APPLICATION USAGE

> The modf() function computes the function result and *iptr such that:

>     a = modf(x, iptr) ;
>     x == a+*iptr ;

> allowing for the usual floating-point inaccuracies.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> frexp, isnan, ldexp

> XBD <math.h>

#### CHANGE HISTORY

> First released in Issue 1. Derived from Issue 1 of the SVID.

#### Issue 5

> The DESCRIPTION is updated to indicate how an application should check for an error. This text was previously published in the APPLICATION USAGE section.

#### Issue 6

> The modff() and modfl() functions are added for alignment with the ISO/IEC 9899:1999 standard.

> The DESCRIPTION, RETURN VALUE, ERRORS, and APPLICATION USAGE sections are revised to align with the ISO/IEC 9899:1999 standard.

> IEC 60559:1989 standard floating-point extensions over the ISO/IEC 9899:1999 standard are marked.

> IEEE Std 1003.1-2001/Cor 1-2002, item XSH/TC1/D6/35 is applied, correcting the code example in the APPLICATION USAGE section.

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2016 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]