天天看點

使用BigDecimal 進行浮點值的精确計算

import java.math.BigDecimal;

public class DecimalTest {

    public static void main(String[] args) {
        System.out.println("7.22-7.0="+subtractTest(7.2882,7.10));
    }

    private static double subtractTest(double v, double v1) {

        BigDecimal b1 = new BigDecimal(Double.toString(v));
        BigDecimal b2 = new BigDecimal(Double.toString(v1));
        System.out.println("b1=>"+b1+" b2=>"+b2);
        return b1.subtract(b2).doubleValue();
    }
}           

複制

輸出列印為:

b1=>7.2882 b2=>7.1

7.22-7.0=0.1882