frexp

fnT frexp(T)(const T value, out int exp) if (isFloatingPoint!T) @trusted pure nothrow @nogc

Separate floating point value into significand and exponent.

Returns

Calculate and return x and exp such that

value =x*2exp and .5 <= |x| < 1.0

x has same sign as value.
value returns exp
±0.0 ±0.0 0
+∞ +∞ int.max
-∞ -∞ int.min
±NaN ±NaN int.min