2014-10-28 140 views
-2

可以说我有一个变量tmp,它是一个双精度型,我想将tmp转换为一个int型,但仍然有一个名为tmp的变量。我将如何做到这一点? 谢谢将变量从Double转换为Int

+0

[四舍五入双把它变成一个int(JAVA)]的可能重复(http://stackoverflow.com/questions/2654839/rounding -a-double-to-turn-into-an-int-java) – DreadHeadedDeveloper 2014-10-28 15:10:33

+0

这是一个重复的问题,许多其他人在这个网站上,请谷歌您的问题或在发布问题前在这个网站上查找他们 – DreadHeadedDeveloper 2014-10-28 15:11:04

+1

为什么你想仍然有变量称为tmp?您必须将此int值分配给另一个变量,因为'tmp'被声明为'double'而不是'int'。 – user2336315 2014-10-28 15:11:33

回答

1

您不能具有相同的变量作为intdouble

你可以拥有这虽然:

double d = 0.1d; 
int i = (int) d; 
d = (double) i; 
System.out.println(d); 

基本上你先投你doubleinteger,丢失分数。之后,您再次将其转换为double并将其分配给您的d变量。您不必明确执行从intdouble的投射,因为它是一种扩大的转换,但它更清楚地发生了什么。

最终的结果是,您的d变量现在具有一个可以用整数精确解释的值,但另一方面,您也基本上已经丢弃了您的分数。但是,您的变量没有更改其类型。

你可以少冗长写这样的:

double d = (int) 0.1d;