Java中最高效的处理浮点型的小数点位的方法莫过于使用java.math.BigDecimal,如下所示:
import java.math.BigDecimal;
public class DecimalTest {
public static void main(String[] args) {
double a = 38.8;
double wrongResult = a * 100;
// 错误的结果
System.out.println("wrongResult=" + wrongResult);
BigDecimal decimal = new BigDecimal(wrongResult);
BigDecimal rightResult = decimal.divide(BigDecimal.ONE, 1,
BigDecimal.ROUND_UP);
System.out.println("rightResult=" + rightResult);
}
}
输出:
wrongResult=3879.9999999999995
rightResult=3880.0