java中float计算会有数据丢失,有时只是简单的加减计算,两位小数的计算后就会变成五六位,这个时候可以用BigDecimal来把计算结果重新转成两位小数:
BigDecimal decimal = new BigDecimal(String.valueOf(branchScore));
构造方法不推荐使用double类型的,因为不能精确的得到相应的值,值会变大。
静态方法BigDecimal.valueOf(double)在内部也是调用的new BigDecimal(String).
float v1 = decimal.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
2是要保留2位小数
DecimalFormat df=new DecimalFormat("0.00");
df.format(f);也可以转换小数位数
//et获得焦点弹出键盘时是数字键盘,但是可以切换为英文或者中文,并可输入全字符 et.setRawInputType(Configuration.KEYBOARD_QWERTY);