Java 将double转换为int
快速提问,将基元数据类型double转换为基元数据类型int的最佳方法是什么。目前我使用以下代码,但似乎有很多方法可以完成简单的任务Java 将double转换为int,java,int,double,Java,Int,Double,快速提问,将基元数据类型double转换为基元数据类型int的最佳方法是什么。目前我使用以下代码,但似乎有很多方法可以完成简单的任务 double i = 2.0; int i2 = Integer.parseInt(Double.toString(i)); 只需将双精度转换为(整数) 您可以使用“类型转换”将任何对象从一种兼容类型转换为另一种兼容类型。您可以使用以下语法: double i = 2.0; int i2 = (int) i; 注意我是如何将(int)放在变量I之前的?这基本
double i = 2.0;
int i2 = Integer.parseInt(Double.toString(i));
只需将双精度转换为(整数)
您可以使用“类型转换”将任何对象从一种兼容类型转换为另一种兼容类型。您可以使用以下语法:
double i = 2.0;
int i2 = (int) i;
注意我是如何将
(int)
放在变量I
之前的?这基本上是说‘嘿,如果可以的话,试着把i变成int’。由于java可以轻松地将浮点转换为int,因此它将。您可以将double转换为int:
double i = 2.0
int i2 = (int) i;
或者,您可以将数字四舍五入到最接近的整数,然后将其转换为整数,以防您想要四舍五入:
double i = 2.2
int i2 = (int) Math.round(i);
或者,你可以使用
double i = 2.0
int i2 = Integer.parseInt(String.valueOf(i));
不过,关于最佳值,第一个选项对于最少的代码来说是最好的,而第二个选项则会更好,如果您希望得到最接近双精度的整数。您还可以使用
Math.floor()
输出:
2
2
-2
-3
(int)您的doubleVariable
可能会工作。您如何定义“best”?它不会在Netbeans中产生错误,因此我希望这意味着它会工作。但是我还不能测试它。你还需要施放第二个…@Dukeling我真的这么认为,所以我尝试在eclipse中使用inti=Math.round(2.2)
,结果你不需要施放它。因为在这种情况下,它将2.2
视为float
。用回答中的double
声明试试。@Dukeling啊,当对float
四舍五入时,你会得到int
,当对double
四舍五入时,你会得到long
。更新的答案。另一种选择是使用浮动(2.2f),这将在不需要强制转换的情况下工作。
public class Example {
public static void main(String args[]) {
double i = 2.9;
System.out.println((int)(i));
System.out.println((int)Math.floor(i));
System.out.println((int)(-i));
System.out.println((int)Math.floor(-i));
}
}
2
2
-2
-3