1. Обзор
В этом учебнике мы изумим различные методы для преобразования из двойной долго на Яве.
2. Использование типа литья
Давайте проверим простой способ бросить двойной долго с помощью литого оператора:
Assert.assertEquals(9999, (long) 9999.999);
Применение (длинный) литые оператора на двойной значение 9999.999 результаты в 9999 году.
Это сужение примитивного преобразования потому что мы теряем точность. Когда двойной отбрасывает на долго , результат останется прежним, за исключением десятичной точки.
3. Использование Double.longValue
Теперь давайте рассмотрим Двойной встроенный метод longValue для преобразования двойной к долго :
Assert.assertEquals(9999, Double.valueOf(9999.999).longValue());
Как видим, применяя longValue метод на двойной значение 9999.999 дает 9999. Внутренне, longValue метод выполняет простой литый .
4. Использование математических методов
Наконец, давайте посмотрим, как преобразовать двойной долго с помощью круглые, ceil, и методы из Математика класс:
Давайте сначала проверим Мат.раунд. Это дает значение, близкое к аргументу:
Assert.assertEquals(9999, Math.round(9999.0)); Assert.assertEquals(9999, Math.round(9999.444)); Assert.assertEquals(10000, Math.round(9999.999));
Во-вторых, Математика ceil даст малейшее значение, которое больше или равно аргументу:
Assert.assertEquals(9999, Math.ceil(9999.0), 0); Assert.assertEquals(10000, Math.ceil(9999.444), 0); Assert.assertEquals(10000, Math.ceil(9999.999), 0);
С другой стороны, Мат.этаж делает как раз противоположность Math.ceil. Это возвращает наибольшее значение, которое меньше или равно аргументу:
Assert.assertEquals(9999, Math.floor(9999.0), 0); Assert.assertEquals(9999, Math.floor(9999.444), 0); Assert.assertEquals(9999, Math.floor(9999.999), 0);
Обратите внимание, что оба Мат.Вейл и Мат.раунд вернуть двойной значение, но в обоих случаях возвращенное значение эквивалентно долго ценность.
5. Заключение
В этой статье мы обсудили различные методы преобразования двойной долго на Яве. Целесообразно иметь представление о том, как каждый метод ведет себя, прежде чем применять его к критически важному коду.
Полный исходный код для этого учебника доступен более на GitHub .