Android 数据失精的解决方法

需求

  • 把一个字符串小数 ,例如 “0.1335” ,乘以 100并且用 % 进行输入,即是: 13.35 %

失败的尝试

  • float

  • double

  • 上面的两种在某种特定小数字符串下,有失去精度的可能

解决方法

                //高精度使用,避免失精度
                BigDecimal mDecimal = new BigDecimal(100);
                BigDecimal resultDecimal = null;
                BigDecimal factorDecimal = null;


                factorDecimal = new BigDecimal("0.1335");
                resultDecimal = factorDecimal.multiply(mDecimal);

                String result = String.valueOf(resultDecimal.doubleValue());

你可能感兴趣的:(Android 数据失精的解决方法)