Why don't ceil()
and floor()
return an integer? How can I return an integer?
a = 10
b = 3
typeof(a/b)
## Float64
c = ceil(a/b)
typeof(c)
## Float64
This issue bothered me in the context of calculating a range, e.g.
k = 0:1:c
## 0.0:1.0:4.0
typeof(k)
## StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}
Full disclosure: I think I have an answer, so I'm going to answer my own question, however please do post an answer if you have a better one. Hopefully next time someone looks, they'll find an answer easily here.
The ceil() function computes the smallest integer that is greater than or equal to x.
At times you want ceil()
and floor()
to return something other than an integer, e.g. Inf
, NaN
. However, you can return an integer like this:
julia> c = ceil(Int64, a/b)
julia> typeof(c)
Int64
julia> k = 0:1:c
0:1:4
julia> typeof(k)
StepRange{Int64, Int64}
See the docs
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With