Конвертировать double в int
Но тут, есть подводные камни, а именно — тип int содержит значения в диапазоне от -2147483648 до 2147483647 , притом что они являются целочисленные, т.е. без дробной части. А double содержит числа в диапазоне от 4.9E-324 до 4.9E-324 . Т.е. при конвертации может произойти переполнение и/или не учитывание дробной части.
Для более гибкого преобразования стоит использовать классы BigDecimal и BigInteger .
Отслеживать
ответ дан 29 янв 2017 в 17:20
14.9k 1 1 золотой знак 21 21 серебряный знак 40 40 бронзовых знаков
Если нужно округлять вверх или вниз, используйте Math.round()
double a = 1.8; int b = Math.round(a); // b = 2
Отслеживать
ответ дан 29 янв 2017 в 17:21
Кирилл Малышев Кирилл Малышев
10.8k 1 1 золотой знак 18 18 серебряных знаков 34 34 бронзовых знака
Double mDouble = 0.25; int mInt = (int)mDouble;
Отслеживать
ответ дан 29 янв 2017 в 17:14
172 11 11 бронзовых знаков
Округляем в нужную сторону.
double dx = 10.787901; double newDouble2 = new BigDecimal(dx).setScale(3, RoundingMode.HALF_EVEN).doubleValue(); int ix = (int)newDouble2; // переводим в int
UP — округление в сторону большего числа для положительных чисел и меньшего для отрицательных.
DOWN — округление в сторону меньшего числа для положительных чисел и большего для отрицательных.
CEILING — округление в сторону большего и для положительных, и для отрицательных чисел.
FLOOR — округление в сторону меньшего и для положительных, и для отрицательных чисел.
HALF_UP — округление в большую сторону в случае числа вида 0.5
HALF_DOWN — округление в меньшую сторону в случае числа вида 0.5
HALF_EVEN — классическое округление
Ссылка на документацию >>>
Как double преобразовать в int java
Примитивный тип double можно преобразовать в int явно указав на необходимость преобразования (int) .
Объект Double можно преобразовать с помощью метода intValue() .
Кроме того мы можем использовать методы округления библиотеки Math .
public class App public static void main(String[] args) double f = 5.5; int i = (int) f; System.out.println(i); // => 5 Double d = 5.5; int n = d.intValue(); System.out.println(n); // => 5 // округлим до ближайшего целого числа вверх n = (int) Math.ceil(d); System.out.println(n); // => 6 // округлим до ближайшего целого числа вниз n = (int) Math.floor(d); System.out.println(n); // => 5 // округлим до ближайшего целого числа n = (int) Math.round(d); System.out.println(n); // => 6 > >
Как перевести double в int java
Для перевода значения типа double в значение типа int в Java можно воспользоваться явным приведением типов. Это позволяет преобразовать значение одного типа данных в значение другого типа данных. Вот пример кода:
double myDouble = 3.14; int myInt = (int) myDouble; System.out.println(myInt); // => 3
Здесь значение переменной myDouble явно приводится к типу int с помощью оператора (int) . Значение переменной myDouble теряет дробную часть и преобразуется в целочисленное значение, которое сохраняется в переменную myInt .
Преобразование строки в различные типы оболочки и примитивные типы данных в Java
В этом посте будет обсуждаться, как преобразовать строку в Java в различные типы оболочки и примитивные типы данных, поддерживаемые Java.
1. Преобразование строки в int (или Integer)
Мы можем использовать Integer.parseInt() чтобы получить соответствующее примитивное значение int строки или использовать Integer.valueOf() чтобы получить соответствующее значение класса-оболочки Integer. Если строка не является целым числом, NumberFormatException будет брошен. Для получения более подробной информации см. это почта.