Преобразование Long в Double в Java
Теперь, когда мы понимаем, что такое Long и double, давайте узнаем, как преобразовывать между ними. Java предоставляет несколько методов для преобразования Long в double.
Создание программы с примером преобразования
Давайте создадим новый файл с именем LongToDoubleConverter.java, чтобы продемонстрировать различные методы преобразования:
- В WebIDE перейдите в каталог
~/project/long-to-double.
- Щелкните правой кнопкой мыши и выберите "New File" (Новый файл).
- Назовите файл
LongToDoubleConverter.java.
Добавьте следующий код в файл:
public class LongToDoubleConverter {
public static void main(String[] args) {
// Method 1: Implicit conversion from primitive long to primitive double
long primitiveLong = 1234567890L;
double convertedDouble1 = primitiveLong;
System.out.println("Method 1 (Implicit conversion):");
System.out.println("Original long value: " + primitiveLong);
System.out.println("Converted double value: " + convertedDouble1);
System.out.println();
// Method 2: Explicit casting from primitive long to primitive double
double convertedDouble2 = (double) primitiveLong;
System.out.println("Method 2 (Explicit casting):");
System.out.println("Original long value: " + primitiveLong);
System.out.println("Converted double value: " + convertedDouble2);
System.out.println();
// Method 3: Using Long wrapper's doubleValue() method
Long wrapperLong = 9876543210L;
double convertedDouble3 = wrapperLong.doubleValue();
System.out.println("Method 3 (Using doubleValue()):");
System.out.println("Original Long wrapper value: " + wrapperLong);
System.out.println("Converted double value: " + convertedDouble3);
System.out.println();
}
}
Теперь давайте скомпилируем и запустим эту программу:
cd ~/project/long-to-double
javac LongToDoubleConverter.java
java LongToDoubleConverter
Вы должны увидеть вывод, похожий на:
Method 1 (Implicit conversion):
Original long value: 1234567890
Converted double value: 1.23456789E9
Method 2 (Explicit casting):
Original long value: 1234567890
Converted double value: 1.23456789E9
Method 3 (Using doubleValue()):
Original Long wrapper value: 9876543210
Converted double value: 9.87654321E9
Объяснение методов преобразования
Давайте разберем каждый метод преобразования:
Метод 1: Неявное преобразование (Implicit Conversion)
double convertedDouble1 = primitiveLong;
Java автоматически преобразует примитивный long в примитивный double. Это называется неявным преобразованием (implicit conversion) или расширяющим преобразованием (widening conversion), потому что double может представлять более широкий диапазон значений, чем long.
Метод 2: Явное приведение типов (Explicit Casting)
double convertedDouble2 = (double) primitiveLong;
Здесь мы явно указываем Java преобразовать long в double, используя приведение типов (cast). Это более многословно, но делает преобразование понятным в вашем коде.
Метод 3: Использование метода doubleValue()
double convertedDouble3 = wrapperLong.doubleValue();
При работе с классом-оберткой Long (а не примитивным long) вы можете использовать метод doubleValue() для преобразования в примитивный double.
Все три метода дают один и тот же численный результат, но они используются в разных контекстах в зависимости от того, работаете ли вы с примитивами или классами-обертками.