Страницы

Поиск по вопросам

среда, 18 декабря 2019 г.

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

#java #double


Подскажите, как конвертировать double в int?
    


Ответы

Ответ 1



Сама конвертация не сложна: double doubleValue = 0.0001; int value = (int) doubleValue; Т.е. инструкция в общем виде выглядит так: type v1 = (type) v2; Но тут, есть подводные камни, а именно - тип int содержит значения в диапазоне от -2147483648 до 2147483647, притом что они являются целочисленные, т.е. без дробной части. А double содержит числа в диапазоне от 4.9E-324 до 4.9E-324. Т.е. при конвертации может произойти переполнение и/или не учитывание дробной части. Для более гибкого преобразования стоит использовать классы BigDecimal и BigInteger.

Ответ 2



Если нужно округлять вверх или вниз, используйте Math.round() double a = 1.8; int b = Math.round(a); // b = 2

Ответ 3



Double mDouble = 0.25; int mInt = (int)mDouble;

Ответ 4



Округляем в нужную сторону. 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 — классическое округление Ссылка на документацию >>>

Комментариев нет:

Отправить комментарий