Почему ceil()
и floor()
не возвращают целое число? Как я могу вернуть целое число?
a = 10
b = 3
typeof(a/b)
## Float64
c = ceil(a/b)
typeof(c)
## Float64
Эта проблема беспокоила меня в контексте расчета диапазона, например.
k = 0:1:c
## 0.0:1.0:4.0
typeof(k)
## StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}
Полное раскрытие: я думаю, что у меня есть ответ, поэтому я собираюсь ответить на свой вопрос, однако, пожалуйста, опубликуйте ответ, если у вас есть лучший. Надеюсь, в следующий раз, когда кто-то посмотрит, они легко найдут здесь ответ.
cld
,div
иfld
для вычисленияceil(Int, a/b)
,round(Int, a/b)
иfloor(Int, a/b)
, используя только целочисленную арифметику, которая, вероятно, быстрее и также не столкнется с проблемами округления. - person Oscar Smith   schedule 13.04.2021÷
(вводится \div, затем tab), чтобы выполнить целочисленное деление. - person 张实唯   schedule 13.04.2021