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

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

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

Каждый базовый тип данных занимает определенное количество байт памяти. Это накладывает ограничение на операции, в которые вовлечены различные типы данных. Рассмотрим следующий пример:

В данном коде мы столкнемся с ошибкой. Хотя и тип byte, и тип int представляют целые числа. Более того, значение переменной a, которое присваивается переменной типа byte, вполне укладывается в диапазон значений для типа byte (от -128 до 127). Тем не менее мы сталкиваемся с ошибкой на этапе компиляции. Поскольку в данном случае мы пытаемся присвоить некоторые данные, которые занимают 4 байта, переменной, которая занимает всего один байт.

Тем не менее в программе может потребоваться, чтобы подобное преобразование было выполнено. В этом случае необходимо использовать операцию преобразования типов (операция () ):

Операция преобразования типов предполагает указание в скобках того типа, к которому надо преобразовать значение. Например, в случае операции (byte)a , идет преобразование данных типа int в тип byte. В итоге мы получим значение типа byte.

Явные и неявные преобразования

Когда в одной операции вовлечены данные разных типов, не всегда необходимо использовать операцию преобразования типов. Некоторые виды преобразований выполняются неявно, автоматически.

Автоматические преобразования

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

Стрелками на рисунке показано, какие преобразования типов могут выполняться автоматически. Пунктирными стрелками показаны автоматические преобразования с потерей точности.

Автоматически без каких-либо проблем производятся расширяющие преобразования (widening) — они расширяют представление объекта в памяти. Например:

В данном случае значение типа byte, которое занимает в памяти 1 байт, расширяется до типа int, которое занимает 4 байта.

Расширяющие автоматические преобразования представлены следующими цепочками:

byte -> short -> int -> long

short -> float -> double

Автоматические преобразования с потерей точности

Некоторые преобразования могут производиться автоматически между типами данных одинаковой разрядности или даже от типа данных с большей разрядностью к типа с меньшей разрядностью. Это следующие цепочки преобразований: int -> float , long -> float и long -> double . Они производятся без ошибок, но при преобразовании мы можем столкнуться с потерей информации.

Явные преобразования

Во всех остальных преобразованиях примитивных типов явным образом применяется операция преобразования типов. Обычно это сужающие преобразования (narrowing) от типа с большей разрядностью к типу с меньшей разрядностью:

Потеря данных при преобразовании

При применении явных преобразований мы можем столкнуться с потерей данных. Например, в следующем коде у нас не возникнет никаких проблем:

Число 5 вполне укладывается в диапазон значений типа byte, поэтому после преобразования переменная b будет равна 5. Но что будет в следующем случае:

Результатом будет число 2. В данном случае число 258 вне диапазона для типа byte (от -128 до 127), поэтому произойдет усечение значения. Почему результатом будет именно число 2?

Число a, которое равно 258, в двоичном системе будет равно 00000000 00000000 00000001 00000010 . Значения типа byte занимают в памяти только 8 бит. Поэтому двоичное представление числа int усекается до 8 правых разрядов, то есть 00000010 , что в десятичной системе дает число 2.

Усечение рациональных чисел до целых

При преобразовании значений с плавающей точкой к целочисленным значениям, происходит усечение дробной части:

Здесь значение числа b будет равно 56, несмотря на то, что число 57 было бы ближе к 56.9898. Чтобы избежать подобных казусов, надо применять функцию округления, которая есть в математической библиотеке Java:

Преобразования при операциях

Нередки ситуации, когда приходится применять различные операции, например, сложение и произведение, над значениями разных типов. Здесь также действуют некоторые правила:

если один из операндов операции относится к типу double , то и второй операнд преобразуется к типу double

если предыдущее условие не соблюдено, а один из операндов операции относится к типу float , то и второй операнд преобразуется к типу float

если предыдущие условия не соблюдены, один из операндов операции относится к типу long , то и второй операнд преобразуется к типу long

иначе все операнды операции преобразуются к типу int

Так как в операции участвует значение типа double, то и другое значение приводится к типу double и сумма двух значений a+b будет представлять тип double.

Две переменных типа byte и short (не double, float или long), поэтому при сложении они преобразуются к типу int , и их сумма a+b представляет значение типа int. Поэтому если затем мы присваиваем эту сумму переменной типа byte, то нам опять надо сделать преобразование типов к byte.

Convert Double to Integer in Java

Given a Double real number. Write a Java program to convert the given double number into an Integer (int) in Java.

Examples:

Double: The double data type is a double-precision 64-bit IEEE 754 floating-point. Its value range is endless. The double data type is commonly used for decimal values, just like float. The double data type also should never be used for precise values, such as currency. Its default value is 0.0.

Integer: The Integer or int data type is a 32-bit signed two’s complement integer. Its value-range lies between – 2,147,483,648 (-2^31) to 2,147,483,647 (2^31 -1) (inclusive). Its minimum value is – 2,147,483,648 and maximum value is 2,147,483,647. Its default value is 0. The int data type is generally used as a default data type for integral values unless if there is no problem about memory.

Approaches

There are numerous approaches to do the conversion of Double datatype to Integer (int) datatype. A few of them are listed below.

Как Преобразовать double В int В Java?

Эта статья первоначально опубликована по адресу https://coderolls.com/convert-double-to-int/ В этой статье… Помеченный java.

  • Автор записи

Эта статья первоначально опубликована по адресу Эта статья первоначально опубликована по адресу

В этой статье мы увидим, как мы можем преобразовать double в int.

В программировании на Java у вас будет двойное примитивное значение (пример 82.14), но для выполнения дальнейших операций вам потребуется значение int (пример 82). итак, давайте посмотрим, как преобразовать double в int в java.

Существует три способа преобразования double в int. Я перечислю их все ниже, а затем мы рассмотрим их один за другим.

  1. преобразование double в int – с помощью приведения типов
  2. преобразуйте double в int – с помощью Math.round()
  3. преобразовать double в int – с помощью Двойной. Значение()

1. преобразуйте double в int – с помощью приведения типов

Мы знаем, что double – это 64-разрядное примитивное значение, а int – 32-разрядное примитивное значение. Итак, чтобы преобразовать double в int, мы можем уменьшить значение double до int.

Ниже я привел простой пример, в котором показано, как преобразовать double в int с помощью приведения типов.

Проблема с приведением типов заключается в том, что оно усекает значение после десятичной точки. Он не будет его огибать.

В случае 82.14 мы получим значение int, равное 82, что выглядит нормально. Но когда у нас будет двойное значение, например 82,99, мы получим только 82 и потеряем 0,99, что равно

Это может создать проблему в ваших расчетах.

В случае 82,99 его следует округлить до 83, а затем преобразовать в int.

Это невозможно при приведении типов, но наше следующее решение может этого достичь.

2. преобразуйте double в int – с помощью функции Math.round()

Метод Math.round() округлит значение с плавающей запятой до ближайшего значения long. Затем мы можем ввести его в int.

Ниже я привел простую java-программу, которая показывает, как преобразовать double в int с помощью метода Math.round() .

3. преобразуйте double в int – используя Double.int Значение()

Таким образом, мы преобразуем примитивное значение double в класс-оболочку Double , а затем сможем использовать метод intValue() класса-оболочки Double .

Этот метод не округляет значение перед преобразованием его в значение в Интернете. Он удалит цифры после десятичной точки.

Ниже я привел простую java-программу, которая показывает, как преобразовать double в int с помощью Double. intValue() метод.

Вывод

Мы можем преобразовать double в int в java, используя три приведенных ниже способа.

1. преобразуйте double в int – с помощью приведения типов

В этом методе мы вводим двойное значение в значение int, как указано ниже,

Но таким образом мы потеряем значение после запятой. Он не будет выполнять округление перед преобразованием double в int.

2. преобразуйте double в int – используя Математический раунд()

Таким образом, мы используем метод Math.round() для округления.

Метод Math.round() округляет двойное значение до ближайшего значения long, а затем мы можем ввести значение long в значение int, как указано ниже.

3. преобразуйте double в int – используя Двойной. Значение()

Таким образом, мы преобразуем значение double в класс-оболочку Double , а затем используем метод Double.intValue() для получения значения int.

Таким образом, мы также потеряем цифры после десятичных знаков.

Итак, вот как мы преобразуем double в int в java. Вы можете проверить все три ( DoubleToIntUsingTypecasting.java , Двойное использование метода обхода.java , Метод двойного указанияintvaluemethod.java ) программы на GitHub

Вы можете прочитать больше о строка в int и преобразование int в строку преобразование.

Вы можете посетить мой канал YouTube “coderolls” , чтобы найти больше видеоуроков.

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

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