Как double преобразовать в int java
Перейти к содержимому

Как double преобразовать в int java

  • автор:

Как перевести double в int java

Для перевода значения типа double в значение типа int в Java можно воспользоваться явным приведением типов. Это позволяет преобразовать значение одного типа данных в значение другого типа данных. Вот пример кода:

double myDouble = 3.14; int myInt = (int) myDouble; System.out.println(myInt); // => 3 

Здесь значение переменной myDouble явно приводится к типу int с помощью оператора (int) . Значение переменной myDouble теряет дробную часть и преобразуется в целочисленное значение, которое сохраняется в переменную myInt .

Конвертировать double в int

Но тут, есть подводные камни, а именно — тип int содержит значения в диапазоне от -2147483648 до 2147483647 , притом что они являются целочисленные, т.е. без дробной части. А double содержит числа в диапазоне от 4.9E-324 до 4.9E-324 . Т.е. при конвертации может произойти переполнение и/или не учитывание дробной части.

Для более гибкого преобразования стоит использовать классы BigDecimal и BigInteger .

Отслеживать
ответ дан 29 янв 2017 в 17:20
14.9k 1 1 золотой знак 22 22 серебряных знака 41 41 бронзовый знак

Если нужно округлять вверх или вниз, используйте Math.round()

double a = 1.8; int b = Math.round(a); // b = 2 

Отслеживать
ответ дан 29 янв 2017 в 17:21
Кирилл Малышев Кирилл Малышев
10.8k 1 1 золотой знак 19 19 серебряных знаков 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 > > 

Преобразование типов в Java

Преобразование типов — это тема, которая может показаться сложной начинающим программировать на Java. Однако, заверим Вас, на самом деле всё просто. Главное понять по каким законам происходит взаимодействие между переменными и помнить об этом при написании программ. Итак, давайте разбираться.

В Java существует 2 типа преобразований — картинка Вам в помощь:

preobrazovaniya-v-java_vertex-academy

Напомним, что вся «Вселенная Java» состоит из:

  • примитивных типов (byte, short, int, long, char, float, double, boolean)
  • объектов

В данной статье мы:

  • рассмотрим преобразование типов для примитивных типов переменных
  • преобразование объектов (String, Scanner и др.) в этой статье не рассматривается, поскольку с объектами происходит отдельная «магия» — это тема для отдельной статьи.
Автоматическое преобразование

Ну, что ж, давайте попробуем разобраться что такое «автоматическое преобразование».

Помните, когда мы рассматривали типы переменных (в статье «Переменные в Java. Создание переменной»), мы говорили, что переменная — это некоторый «контейнер» , в котором может храниться значение для дальнейшего использования в программе. Также мы говорили о том, что каждый тип переменной имеет свой диапазон допустимых значений и объем занимаемой памяти. Вот она табличка, где это все было расписано:

variables-java_vertex-academy

Так вот, к чему мы, собственно говоря, клоним. К тому, что совсем не просто так Вам давались диапазоны допустимых значений и объем занимаемой памяти ��

Давайте, сравним, например:

1. byte и short. byte имеет меньший диапазон допустимых значений, чем short. То есть byte это как бы коробочка поменьше, а short — это коробочка побольше. И значит, мы можем byte вложить в short.

2. byte и int . byte имеет меньший диапазон допустимых значений, чем int. То есть byte это как бы коробочка поменьше, а int — это коробочка побольше. И значит, мы можем byte вложить в int.

3. int и long. int имеет меньший диапазон допустимых значений, чем long. То есть int это как бы коробочка поменьше, а long — это коробочка побольше. И значит, мы можем int вложить в long.

avtomaticheskoe-preobrazovanie_1_vertex-academy

Это и есть пример автоматического преобразования. Это можно схематически изобразить в виде вот такой картинки:

avtomaticheskoe-preobrazovanie-v-java_vertex-academy

Давайте рассмотрим как это работает на практике.

Пример №1

Код №1 — если Вы запустите это код на своем компьютере, в консоли будет выведено число 15

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *