赞
踩
- /**
- * 精度丢失问题解决方法
- */
- public static void main(String[] args) {
- double a = 1.0;
- double b = 0.9;
- System.out.println(a - b);
- // 解决精度丢失问题方法如下
- BigDecimal big = new BigDecimal(a + "");
- BigDecimal big2 = new BigDecimal(b + "");
- // 两个值相加-返回一个BigDecimal对象
- BigDecimal subtract = big.subtract(big2);
- // 将类型转换为Double类型
- System.out.println(subtract.doubleValue());
- System.out.println("==========================");
- getValue();
- }
-
- public static void getValue() {
- BigDecimal one = new BigDecimal("5");
- BigDecimal two = new BigDecimal("10");
- // 加法:
- BigDecimal add = one.add(two);
- System.out.println("(加法)10+5=" + add);
- // 减法:
- BigDecimal subtract = two.subtract(one);
- System.out.println("(减法)10-5=" + subtract);
- // 乘法:
- BigDecimal result = one.multiply(two);
- System.out.println("(乘法)10*5=" + result);
- // 除法:
- BigDecimal divide = two.divide(one);
- System.out.println("(除法)10/5=" + divide);
- // 取余:
- BigDecimal result2 = two.remainder(one);
- System.out.println("(取余)10%5=" + result2);
- }
- 输出结果:
- 0.09999999999999998
- 0.1
- ==========================
- (加法)10+5=15
- (减法)10-5=5
- (乘法)10*5=50
- (除法)10/5=2
- (取余)10%5=0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。