Доброго времени суток. Есть код, который проводит некоторые операции с числами типа double а потом выводит их на экран. Есть ли возможность вывести целые числа (1.0, 2.0, 3.0 и т.д) без нолей?
Asked
Active
Viewed 996 times
2
3 Answers
7
ТС спрашивал не о приведении типов, а о:
Есть ли возможность вывести целые числа (1.0, 2.0, 3.0 и т.д) без нолей?
Надо просто форматировать вывод:
double d=2.0;
NumberFormat formatter = new DecimalFormat("#0");
System.out.println(formatter.format(d));
Приведение к int, просто приведет к переполнению, потому что максимальное значение int равно 2^31-1=2147483647, а максимальное значение double равно 1.7*10^308
Barmaley
- 81,300
3
Как вариант выводить их с помощью приведения к int, как Вам подсказали уже в коментариях:
System.out.print((int) 2.5);
System.out.print((int) doubleValue);
или же использовать округление (зависит от Вашей задачи)
Math.ceil(n) — возвращает наименьшее целое число, которое больше или равно аргумента n.
Math.floor(n) — возвращает наибольшее целое число, которое меньше или равно аргументу n.
Math.round(n) — возвращает целое число, ближайшее к аргументу n (округляет n).
Вот тут уже отвечали про округление.
Dejsving
- 1,282
1
Используйте метод объекта intValue() если у вас тип Double. Если примитив, то явное приведение - (int)doubleVar
SergeiK
- 451
(int)не сработает? – Алексей Шиманский Sep 08 '17 at 12:54intValue()- это метод объекта, так что так не получится :Double.intValue()– SergeiK Sep 08 '17 at 13:03