'\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified 1993-07-24 by Rik Faith (faith@cs.unc.edu) .\" Modified 2002-07-27 by Walter Harms .\" (walter.harms@informatik.uni-oldenburg.de) .\" .TH modf 3 2023-03-30 "Linux man-pages 6.04" .SH NAME modf, modff, modfl \- extract signed integral and fractional values from floating-point number .SH LIBRARY Math library .RI ( libm ", " \-lm ) .SH SYNOPSIS .nf .B #include .PP .BI "double modf(double " x ", double *" iptr ); .BI "float modff(float " x ", float *" iptr ); .BI "long double modfl(long double " x ", long double *" iptr ); .fi .PP .RS -4 Feature Test Macro Requirements for glibc (see .BR feature_test_macros (7)): .RE .PP .BR modff (), .BR modfl (): .nf _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || /* Since glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .fi .SH DESCRIPTION These functions break the argument .I x into an integral part and a fractional part, each of which has the same sign as .IR x . The integral part is stored in the location pointed to by .IR iptr . .SH RETURN VALUE These functions return the fractional part of .IR x . .PP If .I x is a NaN, a NaN is returned, and .I *iptr is set to a NaN. .PP If .I x is positive infinity (negative infinity), +0 (\-0) is returned, and .I *iptr is set to positive infinity (negative infinity). .SH ERRORS No errors occur. .SH ATTRIBUTES For an explanation of the terms used in this section, see .BR attributes (7). .ad l .nh .TS allbox; lbx lb lb l l l. Interface Attribute Value T{ .BR modf (), .BR modff (), .BR modfl () T} Thread safety MT-Safe .TE .hy .ad .sp 1 .SH STANDARDS C11, POSIX.1-2008. .SH HISTORY C99, POSIX.1-2001. .PP The variant returning .I double also conforms to SVr4, 4.3BSD, C89. .SH SEE ALSO .BR frexp (3), .BR ldexp (3)