Find number of digits in a non-integer number?

ilog10(x) = Int(floor(log10(x)))
alog10(x) = abs(ilog10(x))

to_nonzero_digit(x::Integer) = 0

function to_nonzero_digit(x::AbstractFloat)
    !isfinite(x) && throw(DomainError(x, "expected a finite value"))
    if isinteger(x)
        0
    else
        alog10(abs(x))
    end
end
ns=(1.0, 0.5, 0.05, 0.0625, 0.001, 0.0025)
to_nonzero_digit.(ns) == (0, 1, 2, 2, 3, 3)
7 Likes