Float Point
Base.Math.exponent — Function
exponent(x::Real) -> IntReturn the largest integer y such that 2^y ≤ abs(x). For a normalized floating-point number x, this corresponds to the exponent of x.
Throws a DomainError when x is zero, infinite, or NaN. For any other non-subnormal floating-point number x, this corresponds to the exponent bits of x.
See also signbit, significand, frexp, issubnormal, log2, ldexp.
Examples
julia> exponent(8)
3
julia> exponent(6.5)
2
julia> exponent(-1//4)
-2
julia> exponent(3.142e-4)
-12
julia> exponent(floatmin(Float32)), exponent(nextfloat(0.0f0))
(-126, -149)
julia> exponent(0.0)
ERROR: DomainError with 0.0:
Cannot be ±0.0.
[...]Base.Math.significand — Function
significand(x)Extract the significand (a.k.a. mantissa) of a floating-point number. If x is a non-zero finite number, then the result will be a number of the same type and sign as x, and whose absolute value is on the interval $[1,2)$. Otherwise x is returned.
Examples
julia> significand(15.2)
1.9
julia> significand(-15.2)
-1.9
julia> significand(-15.2) * 2^3
-15.2
julia> significand(-Inf), significand(Inf), significand(NaN)
(-Inf, Inf, NaN)Base.Math.frexp — Function
frexp(val)Return (x,exp) such that x has a magnitude in the interval $[1/2, 1)$ or 0, and val is equal to $x \times 2^{exp}$.
See also significand, exponent, ldexp.
Examples
julia> frexp(6.0)
(0.75, 3)
julia> significand(6.0), exponent(6.0) # interval [1, 2) instead
(1.5, 2)
julia> frexp(0.0), frexp(NaN), frexp(-Inf) # exponent would give an error
((0.0, 0), (NaN, 0), (-Inf, 0))Base.Math.ldexp — Function
Base.Math.modf — Function
modf(x)Return a tuple (fpart, ipart) of the fractional and integral parts of a number. Both parts have the same sign as the argument.
Examples
julia> modf(3.5)
(0.5, 3.0)
julia> modf(-3.5)
(-0.5, -3.0)