Java 类型转换方法

Java double转long有4种方法,它们分别是:

  1. 使用类型转换将double转换为long
  2. 使用Math.round()将double转换为long。
  3. 使用double.longValue()将double转换为long。
  4. 使用Long.parseLong()方法。

下面分别介绍这4种方式转换的例子。

1. 使用类型转换

使用类型转换的方式比较简单,就是在double类型的值前面用long关键字,但是它没有对double值进行四舍五入,而是直接截断了小数点后面的数字,如果结果想要更准确的精度,建议使用第二种方法Math.round()进行转换。

public class Double2LongExample {
    public static void main(String args[]){
        double d1=3.14, d2=9999.999;

        long l1=(long)d1, l2=(long)d2;

        System.out.println(l1+"\n"+l2);
    }
} 
输出:
3
9999

我们看到结果输出分别是3和9999,截断了小数0.14和0.999,接下来看第二种方式。

2.使用Math.round()方法

Math.round()方法是java的数学方法,看下面的例子。

public class Double2LongExample {
    public static void main(String args[]){
        double d1=3.14, d2=9999.999;

        long l1=Math.round(d1), l2=Math.round(d2);

        System.out.println(l1+"\n"+l2);
    }
} 
输出:
3
10000

从结果可以看到Math.round()方法对结果进行了四舍五入。

3. 使用Double.longValue()方法

这里介绍java的Double包装类方法,它和第一种方法相同,会截断小数位。

 public class Double2LongExample {
    public static void main(String args[]){
        Double d1=3.14, d2=9999.999;

        long l1=d1.longValue(), l2=d2.longValue();

        System.out.println(l1+"\n"+l2);
    }
} 
输出:
3
9999

 4. Long.parseLong()方法

parseLong()方法可以将字符串转换为long类型。所以我们需要将double类型转为字符串,不过得去掉小数点后面的小数,然后再使用Long.parseLong()方法即可。

public class Double2LongExample {
    public static void main(String args[]){
        double d=3.1415926;

        String s=String.valueOf(d);
        //去掉小数点后面的小数
        int i=s.indexOf('.');
        s=s.substring(0, i==-1 ? s.length() : i);
       
        long l=Long.parseLong(s);

        System.out.println(l);
    }

}
输出:
3

 方法4多了一个步骤。