从Java原始int转换为double

时间:2013-11-11 16:38:44

标签: java types casting

如果我打电话

methodName(5, 1/2);

并且它有签名

public static int methodName(int x, double y){
}

methodName是否会收到y,其值为00.5

5 个答案:

答案 0 :(得分:3)

int y = 1/2;

此时,y为0.如果您尝试将其转换为双精度,则它将为0.0。它不记得它是如何得到它的价值的,它的价值是什么。

编辑:我认为编译器实际上会在编译时将1/2替换为0。使代码与int y = 0

完全相同

答案 1 :(得分:0)

评估为0。

使用上述代码并不是很多。

没有特别的理由将y存储为int。

请改为尝试:

double y = 1/2.0;

答案 2 :(得分:0)

int y = 1/2;

在此代码中,y将为0;

如果你想把它变成0.5

尝试使用以下代码:

double y = 1.0 * 1 /2; //y is 0.5

答案 3 :(得分:0)

int y = 1/2

由于您使用1(int)和2(int)进行除法,因此它是整数除法,因此y = 0(余数(%)为1)。

答案 4 :(得分:0)

我认为你对参数(括号)感到困惑。在java中,每个方法都有一组参数(它们可能不包含ex:exampleMethod())。

参数是传递给方法的变量,因此当您在代码中调用时:

methodName() initialize it with methodName(x,y);

方法中的x和y只是指向通过参数的值的指针。我建议您以不同的方式命名变量,以避免这种混淆。例如:

int x;
int y;
methodName(int argX, double argY)
{

}

同样为了回答你的问题,一个int在小数点处切断了它的存储值,所以5.9会舍入到5而不是6,所以如果你需要y的浮点变量,要么将它声明为浮点数,要么double,要么都可以工作,但是java库中的大多数方法都是用双精度作为参数而不是浮点数