2017-04-02 101 views
0
public class Test { 

public static void main(String[] args) { 

int test = 1; 

System.out.println((double)(Math.pow(test/++test, 2))); 

} 

0.0被打印到屏幕上。为什么?为什么演员不按预期工作?Java - 投射不产生预期输出

如果测试声明这样...

double test = 1; 

我得到了我期望打印... 0.25。

为什么?

我是编程新手,我在玩耍。阅读这个级别的一些文档是无用的。

+2

演员发生为时已晚。你已经写了'(int)1 /(int)2'并产生了'(int)0'。将'0'投射到'double'不会恢复被截断的数据。 –

回答

0

你在做整数除法。该行以便改变

System.out.println((Math.pow(test/(double)++test, 2))); 

做双师