-4

我正在编写一个 android 代码,其中文本视图由我的 java 类中的计算百分比填充。

因为我必须计算 %,所以我的最终变量 (calcPerc) 是双精度类型的变量。它不会在我的 TextView 中设置文本。请帮忙。

代码

int totDiff = (totalMA - totalIA);
    double beforeperc = ((double)totDiff / (double)totalIA);
    calPerc = ((double)beforeperc*100);

    percentage = (TextView)findViewById(R.id.populatePercentage);
    percentage.setText(calPerc);

我得到的错误是

TextView 类型中的方法 setText(CharSequence) 不适用于参数(双精度)

另外,还有一个后续问题。变量“calPerc”是双精度的,在小数点后给我无限位数。我如何将其四舍五入到小数点后两位?

4

2 回答 2

2

这应该为您当前的语言环境正确格式化显示值(最多 2 个小数);

NumberFormat twoDecimals = NumberFormat.getInstance(); 
twoDecimals.setMaximumFractionDigits(2);
percentage.setText(twoDecimals.format(calPerc));
于 2013-01-22T11:13:52.813 回答
0

要更好地控制格式(例如限制小数点后的位数),您可以使用String.format()

percentage.setText(String.format("%.2f %%", calPerc));

请注意默认语言环境

于 2013-01-22T11:08:07.190 回答