frexp - Linux


frexp decomposes a floating-point number into its fractional and exponent components. It is primarily used in scientific computing, numerical analysis, and other applications that require precise control over the floating-point representation of numbers.


frexp(value, exponent)


  • value: The floating-point number to be decomposed.
  • exponent: A pointer to the integer variable that will store the exponent component of the decomposed number.

Return Value:

frexp returns the fractional component of the decomposed number.




# Decompose the number 12.345
double value = 12.345;
int exponent;
double fraction = frexp(value, &exponent);

In this example, fraction will contain the value 0.61725, and exponent will contain the value 4. This means that the floating-point number 12.345 can be represented as 0.61725 * 2^4.

Common Issues

  • Negative Exponents: frexp may return a negative exponent for very small numbers. Ensure that you handle this case gracefully in your application.


frexp is commonly used in conjunction with other floating-point manipulation functions such as ldexp and modf.

Related Commands

  • ldexp: Constructs a floating-point number from a fractional component and an exponent.
  • modf: Decomposes a floating-point number into its fractional and integral components.