Java 把double转换成整数
给定一个双倍实数。编写一个Java程序,在Java中把给定的double转换成整数(int)。
例子
Input: double = 3452.234
Output: 3452
Input: double = 98.23
Output: 98
Double: double数据类型是双精度64位IEEE 754浮点。它的取值范围是无限的。double数据类型通常用于十进制值,就像float一样。double数据类型也绝对不能用于精确值,如货币。它的 默认值是0.0 。
Example: double d1 = 10.5
整数: 整数或int数据类型是一个32位有符号的双补整数。它的取值范围在-2,147,483,648(-2^31)到2,147,483,647(2^31-1)之间(包括在内)。它的最小值是-2,147,483,648,最大值是2,147,483,647。它的 默认值是0。 int数据类型通常被用作积分值的默认数据类型,除非没有内存的问题。
Example: int a = 10
方法
有许多方法可以将Double数据类型转换为Integer(int)数据类型。下面列出了其中的几种。
- 使用 类型转换
- 使用 Double.intValue() 方法
- 使用 Math.round() 方法
方法1:使用类型转换
这种技术非常简单,而且方便用户使用。
语法
double data = 3452.345
int value = (int)data;
例子
// Java program to convert Double to
// int using Typecasting
public class GFG {
// main method
public static void main(String args[])
{
// Get the double value
double data = 3452.345;
System.out.println("Double - " + data);
// convert into int
int value = (int)data;
// print the int value
System.out.println("Integer - " + value);
}
}
输出
Double - 3452.345
Integer - 3452
时间复杂度: O(1),因为使用了常数操作。
辅助空间: O(1),因为不需要额外空间。
方法2:使用Double.intValue()方法
这种技术类似于类型化方法。typecasting方法和这个方法的主要区别在于,typecasting方法是一个显式方法,而这个方法是一个Wrapper类,Double截断了小数点后的所有数字。
语法
double data = 3452.345
Double newData = new Double(data);
int value = newData.intValue();
例子
// Java program to convert Double to int
// using Double.intValue()
public class GFG {
// main method
public static void main(String args[])
{
// Get the double value
Double data = 3452.345;
System.out.println("Double - " + data);
// Create a wrapper around
// the double value
Double newData = new Double(data);
// convert into int
int value = newData.intValue();
// print the int value
System.out.println("Double - " + value);
}
}
输出
Double - 3452.345
Double - 3452
时间复杂度: O(1),因为使用了常数运算。
辅助空间: O(1),因为不需要额外空间。
方法3:使用Math.round()方法
Math.round() 接受一个双倍值,通过在该值上加0.5并修剪其小数点,将其转换为最接近的长值。然后可以使用类型转换将长值转换为int。
语法
long Math.Round(Double doubleValue);
例子
// Java program to convert Double to int
// using Math.round()
public class GFG {
// main method
public static void main(String args[])
{
// Get the double value
double data1 = 3452.345;
System.out.println("Double : " + data1);
// convert into int
int value1 = (int)Math.round(data1);
// print the int value
System.out.println("Integer : " + value1);
double data2 = 3452.765;
System.out.println("\nDouble : " + data2);
// convert into int
int value2 = (int)Math.round(data2);
// print the int value
System.out.println("Integer : " + value2);
}
}
输出
Double : 3452.345
Integer : 3452
Double : 3452.765
Integer : 3453
时间复杂度: O(1),因为使用了常数运算。
辅助空间: O(1),因为不需要额外的空间。
注意: 在这里你可以看到Math.round()方法通过将数字四舍五入到最接近的整数来将双倍数转换为整数。
例如 - 10.6 将 用Math.round() 方法转换为 11 ,1将 用类型转换或Double.intValue()方法 转换为 10