这是我第一次使用StackOverflow,很抱歉,如果我正在学习Java,那么我的问题很无聊。我现在要做的是将一个变量从一个方法传递到另一个方法(同一个类),这样我就可以在图形中显示该值。我的代码如下:
方法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.0,图形也为0.任何想法为什么?非常感谢帮助:)
答案 0 :(得分:2)
原因很简单
除以整数也将返回整数。 因此
double c = a/b;
如果b > a
,将为零
解决方案:将其中一个操作数强制转换为
double c = (double)a/b
答案 1 :(得分:0)
问题与你将双重除以整数的事实有关。任何时候这样做,基本上Java会截断结果(删除小数)。在您的情况下,列表的大小可能大于其划分的大小,因此它向下舍入为0.要解决此问题,您可以将opennes.size()转换为double,或者更好的是,只需将该操作转换为double。
Double num =(double)num1 / num2;
希望有所帮助