精度丢失-解决方法(BigDecimal-加减乘除)

	/**
	 * 精度丢失问题解决方法
	 */
	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

猜你喜欢

转载自blog.csdn.net/weixin_41124484/article/details/81604510
今日推荐