The Open Group Base Specifications Issue 8
IEEE Std 1003.1-2024
Copyright © 2001-2024 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] [Option Start] 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-2024 defers to the ISO C standard. [Option End]

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] [Option Start] The returned value shall be exact and shall be independent of the current rounding direction mode.

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. [Option End]

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.

Issue 8

Austin Group Defect 1302 is applied, aligning these functions with the ISO/IEC 9899:2018 standard.

End of informative text.

 

return to top of page

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