Вопрос:

Преобразование double в int

java int double

6720 просмотра

4 ответа

30 Репутация автора

Быстрый вопрос, как лучше всего преобразовать тип данных примитива double в тип данных примитива int. В настоящее время я использую следующий код, но кажется, что есть много способов сделать простую задачу.

double i = 2.0;
int i2 = Integer.parseInt(Double.toString(i));
Автор: Jdman216 Источник Размещён: 02.02.2014 02:54

Ответы (4)


7 плюса

10662 Репутация автора

просто приведи двойное к (int)

double i = 2.0;
int i2 =  (int) i;
Автор: Nambi Размещён: 02.02.2014 02:56

2 плюса

5124 Репутация автора

Вы можете превратить любой объект из одного совместимого типа в другой, используя «приведение типов». Вы используете этот синтаксис:

double i = 2.0;
int i2 =  (int) i;

Заметьте, как я просто поставил (int)перед переменной i? Это в основном говорит «эй, постарайся сделать меня int, если сможешь». Так как Java может легко преобразовать число с плавающей точкой в ​​int, так и будет.

Автор: Damien Black Размещён: 02.02.2014 02:58

3 плюса

19590 Репутация автора

Вы можете либо привести двойную к int:

double i = 2.0
int i2 = (int) i;

или вы можете округлить число до ближайшего целого числа, а затем привести его к целому числу, на случай, если вы хотите округлить:

double i = 2.2
int i2 = (int) Math.round(i);

или вы могли бы использовать

double i = 2.0
int i2 = Integer.parseInt(String.valueOf(i));

О лучшем, тем не менее, первый вариант будет лучше для наименьшего кода, а второй будет лучше, если вы хотите, чтобы ближайшее двойное целое число было получено.

Автор: Jojodmo Размещён: 02.02.2014 03:03

1 плюс

7757 Репутация автора

Также вы можете использовать Math.floor().

public class Example {
    public static void main(String args[]) { 
        double i = 2.9;

        System.out.println((int)(i));
        System.out.println((int)Math.floor(i));
        System.out.println((int)(-i));
        System.out.println((int)Math.floor(-i));        
    }
}

выход:

2
2
-2
-3
Автор: Aleksey Bykov Размещён: 02.02.2014 03:16
Вопросы из категории :
32x32