因此,我试图计算我的平均目标,通过将我停止的次数除以拍摄的次数来计算。如何阻止它舍入我的平均值
counter =目标被阻止 goalCounter =进球得分
avg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
BigDecimal avgCalc = new BigDecimal(counter/goalCounter);
tvDisplayAvg.setText("Goal Avg: " + avgCalc);
}
});
所以我得到它除以得到小数,但有没有办法设置一个限制只分为千分之一的位置?
答案 0 :(得分:5)
你的舍入来自counter/goalCounter
如果你使用大小数,请坚持下去。
avg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
BigDecimal c = new BigDecimal(counter);
BigDecimal g = new BigDecimal(goalCounter);
BigDecimal answer=c.divide(g);
tvDisplayAvg.setText("Goal Avg: " + amswer.toString());
}
});
答案 1 :(得分:-1)
问题可能是counter
和goalCounter
都是整数。当你划分时(例如counter/(double)goalCounter
),尝试将其中一个投射加倍。这是因为如果Java看到你将两个整数分开,结果也将是一个整数。
如果它们不是整数(即它们是浮点数或双精度数),则float和double类型的精度有限,并且创建了BigDecimal类来纠正这种情况。制作两个BigDecimals - 每个变量一个 - 然后将avgCalc分配给他们的商。