📅  最后修改于: 2023-12-03 15:31:30.087000             🧑  作者: Mango
在Java语言中,double和long都是基本数据类型,其中double表示浮点数,long表示整数。有时候我们需要将一个浮点数转换为整数,这就用到了double到long的转换。本文将介绍Java中如何将double类型转换为long类型。
使用强制类型转换可以将double类型转换为long类型。强制类型转换的语法为:(long)double_value
。
double doubleValue = 123.456;
long longValue = (long)doubleValue;
System.out.println("doubleValue = " + doubleValue);
System.out.println("longValue = " + longValue);
输出结果为:
doubleValue = 123.456
longValue = 123
需要注意的是,强制类型转换过程中可能会出现精度丢失的情况,比如:
double doubleValue = 123.789;
long longValue = (long)doubleValue;
System.out.println("doubleValue = " + doubleValue);
System.out.println("longValue = " + longValue);
输出结果为:
doubleValue = 123.789
longValue = 123
另一种将double转换为long的方法是使用Math.round()方法。Math.round()方法可以将double四舍五入为最接近的整数,并返回一个long类型的结果。
double doubleValue = 123.456;
long longValue = Math.round(doubleValue);
System.out.println("doubleValue = " + doubleValue);
System.out.println("longValue = " + longValue);
输出结果为:
doubleValue = 123.456
longValue = 123
需要注意的是,如果double值小数部分的绝对值正好等于0.5,则Math.round()方法会将其舍入到最接近的偶数。比如:
double doubleValue = 123.5;
long longValue = Math.round(doubleValue);
System.out.println("doubleValue = " + doubleValue);
System.out.println("longValue = " + longValue);
输出结果为:
doubleValue = 123.5
longValue = 124
本文介绍了Java中将double类型转换为long类型的两种方法:强制类型转换和Math.round()方法。需要注意的是,强制类型转换可能会出现精度丢失的情况,而Math.round()方法会将小数部分正好等于0.5的值舍入到最接近的偶数。程序员可以根据具体场景选择适合的方法。