不使用float和double进行精确数值计算 float和double只能进行较为精确的快速近似的计算,并不能提供完全精确的结果,尤其不适用于货币计算,因为它们不能精确地表示0.1或者10的任何其它负次方。 要进行精确计算就使用BigDecimal、int或者long。 BigDecimal /** * 精确数据用BigDecimal(String) */ @Test public void test01() { BigDecimal a = new BigDecimal(0.1);