Why is 1.0f-99 not a subnormal number?

ulia> issubnormal(1.0f-37)
false

julia> issubnormal(1.0f-38)
true

julia> issubnormal(1.0f-39)
true

julia> issubnormal(1.0f-99)
false

For Float64 numbers subnormal starts from exponent -308 to -324 and then it stops

julia> issubnormal(5.0e-308)
false

julia> issubnormal(5.0e-309)
true

julia> issubnormal(5.0e-310)
true

julia> issubnormal(5.0e-324)
true

julia> issubnormal(5.0e-325)
false

The question is why?

Because 1.0f-99 is actually a literal for 0.0f0, which is not subnormal since 0.0 is never subnormal.

7 Likes