话多不说,只是记录一下,遇到的问题,以及解决方式
public static float percentage(int num1, int num2) {
float a = 0;
if (num1 == 0 || num2 == 0) {
return a;
} else {
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMaximumFractionDigits(2); //设置,小数点最多两位数
String result = numberFormat.format((float) num1 / (float) num2 * 100);
if(null != result && !result.equals("")){
return Float.parseFloat(result);
}
return a;
}
}
上述代码,是我在计算百分比的时候用的方法,
但是,这个方法有bug。。
比如:就是当你的 num1,num2 两个数值过大,
最后 String result = numberFormat.format((float) num1 / (float) num2 * 100);
result 这个字符串的值, 里面 会以 千位符分隔 就是 “,” 分隔,最后转换类型的时候,就会报错~~~
那么解决 办法是什么呢?
public static float percentage(int num1, int num2) {
float a = 0;
if (num1 == 0 || num2 == 0) {
return a;
} else {
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMaximumFractionDigits(2); //设置,小数点最多两位数
numberFormat.setGroupingUsed(false); //关闭分组,显示将不再以千位符分隔
String result = numberFormat.format((float) num1 / (float) num2 * 100);
if(null != result && !result.equals("")){
return Float.parseFloat(result);
}
return a;
}
}
调用这个方法:numberFormat.setGroupingUsed(false); //关闭分组,显示将不再以千位符分隔