Коли я дзвоню, Math.ceil(5.2)
повернення - це double
6.0
. Моє природне схильність було думати, що Math.ceil(double a)
це поверне a long
. З документації:
ceil(double a)
Повертає найменше (найближче до негативної нескінченності)
double
значення, яке не менше аргументу і дорівнює цілому математичному числу.
Але навіщо повертати double
замість a, long
коли результатом є ціле число? Думаю, розуміння причини, що це може допомогти мені трохи краще зрозуміти Java. Це також може допомогти мені зрозуміти, чи потраплятиму в неприємності, кидаючи на a long
, наприклад, is
long b = (long)Math.ceil(a);
завжди те, що я думаю, що це повинно бути? Я боюся, що можуть бути певні кордони, які є проблематичними.