Как я могу разделить без настила в Java? - PullRequest
2 голосов
/ 03 января 2012

Я пытаюсь разделить целое число на целое в Java и вернуть длинный результат.Я попробовал следующее, но я продолжаю получать «0».

System.out.println(Long.valueOf(5) / Long.valueOf(18));
System.out.println((long)5 / (long)18);

Ответы [ 4 ]

7 голосов
/ 03 января 2012

Вам не нужен длинный, вам нужен двойной.

System.out.println(5 / 18.0);

или

System.out.println(5.0 / 18);

Конечно, это тоже будет работать:

System.out.println(5.0 / 18.0);
5 голосов
/ 03 января 2012

Long для "длинных" целых чисел. Вы должны использовать float или double вместо.

4 голосов
/ 03 января 2012

Кажется, все дали правильный ответ, но вы должны отметить, что вы также можете сделать

System.out.println(5 / 18f)

Где f делает его плавающим

System.out.println(5 / 18d)

где d делает его двойным

4 голосов
/ 03 января 2012

Длинные по-прежнему являются целыми, вам нужен тип, который может обрабатывать десятичные дроби, используйте либо float или double.

System.out.println(5.0 / 18.0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...