📜  将 Double 转换为 Long 的Java程序

📅  最后修改于: 2022-05-13 01:55:18.043000             🧑  作者: Mango

将 Double 转换为 Long 的Java程序

给定一个 Double 实数。编写一个Java程序,将给定的 double 数字转换为Java中的 Long(long)。

例子:

Input: double = 2545.241
Output: 2545

Input: double = 21.54
Output: 21

双精度数据类型:双精度数据类型是双精度 64 位 IEEE 754 浮点数。它的价值范围是无穷无尽的。它通常用于十进制值。您从未使用双精度数据类型来存储精确值,例如货币。它的默认值为0.0d

Example: double double1 = 111.5d

Long 数据类型: long 数据类型是 64 位二进制补码整数。它表示一个无符号 64 位长,最小值为 0,最大值为 2 64 -1。 long 类还包含对 unsigned long 进行算术运算的方法。默认值为 0

Example: long long1 = 111

方法:

可以有多种方法将双精度数据转换为长数据类型。下面列出了其中一些:

  • 使用类型转换。
  • 使用Double.longValue()方法。
  • 使用Math.round()方法。
  • 使用Long.parseLong()String 方法。

方法 1 – 使用类型转换

这是在Java中将 double 数据类型转换为 long 数据类型的最简单方法。

句法:

double doubleVar = 3452.345
long longVar = (long)doubleVar;

例子:

Java
// Java program to convert double value to
// long using TypeCasting method
  
class GFG {
    public static void main(String[] args)
    {
        double doubleValue = 4512.412;
        System.out.println("Double Value: " + doubleValue);
        
        // TypeCasting to convert double to long
        long longValue = (long)doubleValue;
        System.out.println("Long Value: " + longValue);
    }
}


Java
// Java program to convert double value to
// long using Double.longValue() method
  
class GFG {
    public static void main(String[] args)
    {
        double doubleValue = 4512.412;
        System.out.println("Double Value: " + doubleValue);
  
        // Create wrapper around the double value
        Double newDouble = new Double(doubleValue);
        
        // Convert double to long
        long longValue = newDouble.longValue();
        System.out.println("Long Value: " + longValue);
    }
}


Java
// Java program to convert Double to long
// using Math.round()
    
public class GFG {
    
    public static void main(String args[])
    {
    
        // Get the double value
        double double1 = 99.4;
        System.out.println("Double Value 1: " + double1);
    
        // convert double into long
        long long1 = (long)Math.round(double1);
    
        // print the long value
        System.out.println("Long Value 1: " + long1);
          
        double double2 = 99.6;
        System.out.println("Double Value 2: " + double2);
    
        // convert double into long
        long long2 = (long)Math.round(double2);
    
        // print the long value
        System.out.println("Long Value 2: " + long2);
    }
}


Java
// Java program to convert double value to
// long using Long.parseLong() method
  
class GFG {
    public static void main(String[] args)
    {
        double doubleValue = 4512.412;
        System.out.println("Double Value: " + doubleValue);
  
        // Convert double to string
        String str = String.valueOf(doubleValue);
        
        // Get the index of decimal (.) in the string
        int index = str.indexOf('.');
        
        // Trim the string if needed
        str = str.substring(0, index == -1 ? str.length()
                                           : index);
        
        // Convert the string to long
        long longValue = Long.parseLong(str);
        
        // print long Value
        System.out.println("Long Value: " + longValue);
    }
}


输出
Double Value: 4512.412
Long Value: 4512

方法 2 – 使用 Double.longValue() 方法

这种方法类似于上述方法。这里的 Double 类包含一个 longValue() 方法,该方法从 double 值中删除小数点后的所有数字。

句法:

double doubleValue = 4512.412;
Double newDouble = new Double(doubleValue);
long longValue = newDouble.longValue();  

例子:

Java

// Java program to convert double value to
// long using Double.longValue() method
  
class GFG {
    public static void main(String[] args)
    {
        double doubleValue = 4512.412;
        System.out.println("Double Value: " + doubleValue);
  
        // Create wrapper around the double value
        Double newDouble = new Double(doubleValue);
        
        // Convert double to long
        long longValue = newDouble.longValue();
        System.out.println("Long Value: " + longValue);
    }
}

输出:

Double Value: 4512.412
Long Value: 4512

方法 3 – 使用 Math.round() 方法

Math.round()接受一个 double 值,并通过添加 0.5 并删除其小数点将其转换为最接近的 long 值。

句法:

long Math.round(Double double1);

例子:

Java

// Java program to convert Double to long
// using Math.round()
    
public class GFG {
    
    public static void main(String args[])
    {
    
        // Get the double value
        double double1 = 99.4;
        System.out.println("Double Value 1: " + double1);
    
        // convert double into long
        long long1 = (long)Math.round(double1);
    
        // print the long value
        System.out.println("Long Value 1: " + long1);
          
        double double2 = 99.6;
        System.out.println("Double Value 2: " + double2);
    
        // convert double into long
        long long2 = (long)Math.round(double2);
    
        // print the long value
        System.out.println("Long Value 2: " + long2);
    }
}
输出
Double Value 1: 99.4
Long Value 1: 99
Double Value 2: 99.6
Long Value 2: 100

方法 4 – 使用 Long.parseLong() 和字符串方法

我们可以使用 Long.parseLong() 方法将字符串解析为 long。因此我们可以先将给定的 double 值转换为字符串,然后检查字符串中的小数点。如果存在小数,则修剪字符串,保持字符串字符串为 Long 值。

句法:

long longValue = Long.parseLong(string);

例子:

Java

// Java program to convert double value to
// long using Long.parseLong() method
  
class GFG {
    public static void main(String[] args)
    {
        double doubleValue = 4512.412;
        System.out.println("Double Value: " + doubleValue);
  
        // Convert double to string
        String str = String.valueOf(doubleValue);
        
        // Get the index of decimal (.) in the string
        int index = str.indexOf('.');
        
        // Trim the string if needed
        str = str.substring(0, index == -1 ? str.length()
                                           : index);
        
        // Convert the string to long
        long longValue = Long.parseLong(str);
        
        // print long Value
        System.out.println("Long Value: " + longValue);
    }
}
输出
Double Value: 4512.412
Long Value: 4512