Как преобразовывать вдвое большее по сравнению с долго без кастинга?

183
задан Sled 21 September 2017 в 10:39
поделиться

4 ответа

Принятие Вы довольны усечением по направлению к нулю, просто броском:

double d = 1234.56;
long x = (long) d; // x = 1234

Это будет быстрее, чем движение через классы обертки - и что еще более важно, это более читаемо. Теперь при необходимости в округлении кроме "всегда по направлению к нулю", Вам будет нужен немного более сложный код.

242
ответ дан Jon Skeet 23 November 2019 в 06:00
поделиться

(new Double(d)).longValue() внутренне просто делает бросок, таким образом, нет никакой причины создать Двойной объект.

35
ответ дан Michael Myers 23 November 2019 в 06:00
поделиться

... И вот округляющийся путь, который не усекает. Торопивший для поиска его в Руководстве API Java:

double d = 1234.56;
long x = Math.round(d);
119
ответ дан Johannes Schaub - litb 23 November 2019 в 06:00
поделиться

Проще говоря, кастинг более эффективен, чем создание Двойного объекта.

0
ответ дан rogerdpack 23 November 2019 в 06:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: