2016-12-03 4 views
0

StackOverflow를 처음 사용하는 것이므로 Java를 배우면서 nooby 인 경우 문제가 발생합니다. 내가 지금하려고하는 것은 그래프에서 값을 표시 할 수 있도록 한 메서드의 변수를 다른 메서드 (같은 클래스)로 전달하는 것입니다. 나는 그것이 나에게 콘솔 0.0를 제공하고 그래프는 어떤 생각을 왜 0입니다 그 코드를 실행하면변수가 0으로 표시되는 이유는 무엇입니까?

방법 2

private void Average(){ 

     System.out.println(openessAverage); 
     DefaultCategoryDataset bc = new DefaultCategoryDataset();              
     bc.setValue(openessAverage, "Percentage", "Openess"); //Show here 

     JFreeChart jchart = ChartFactory.createBarChart3D("Big 5 Graph", "ID","Percentage" , bc, PlotOrientation.VERTICAL,true,true,false); //chart 
     CategoryPlot plot = jchart.getCategoryPlot(); 
     ChartFrame chartFRM = new ChartFrame("Personality Insight", jchart,true); 
     chartFRM.setVisible(true); 
     chartFRM.setSize(800,600); //Sets JFrame size 
    } 

: 내 코드는 아래에? 정말 도움 :

+0

'PersonalityGraph()'가 아직 호출되지 않았을 가능성이 있습니다. – markspace

+0

하지만 같은 수업을 듣기 때문에 전화 할 필요가 없다고 생각했습니다. –

+1

이것은 실제로 디버거 사용법을 익힐 수있는 좋은 기회입니다. 이것은 * 프로그래머로서 가장 귀중한 도구가 될 것입니다. IDE (Eclipse, NetBeans 등)를 사용할 때 프로그램을 디버그 모드로 실행할 수 있으며 각 행을 실행하면서 그대로 코드를 단계별로 실행할 수 있습니다. 모든 행에서 일시 중지하고 변수의 런타임 값을 검사하고 일반적으로 프로그램의 논리적 진행을 관찰 할 수 있습니다. 당신이 이것을 할 때, 관찰 된 행동은 예상되는 행동과 어디에 다른가요? 관련 변수의 런타임 값은 무엇입니까? – David

답변

2

이유를 이해할 것은

나누어 정수도 정수를 반환합니다 아주 간단합니다. 피연산자 중 하나가 probelm 당신이 두 번 나누어 있다는 사실과 관련이있다

double c = (double)a/b 
0

을 두 배로 캐스트 : 제로 솔루션

b > a 경우 때문에

double c = a/b; 

이 될 것입니다 정수로 나타낼 수 있습니다. 그렇게하면 기본적으로 Java가 결과를 자릅니다 (소수를 제거함). 귀하의 경우, 목록의 크기가 아마도 나누는 것보다 클 것이므로 0으로 반올림됩니다.이 문제를 해결하려면 opennes.size()를 double으로 캐스팅하거나 더 나은 방법으로 해당 작업을 더블.

더블 num = (double) num1/num2;

희망 하시겠습니까?

관련 문제