BigDecimal处理多位小数

1.保留double的指定位小数

	public double round(double input, int digit) {
		// 构造BigDecimal,注意用new BigDecimal(String)
		BigDecimal bg = new BigDecimal(Double.toString(input));
		return bg.setScale(digit, BigDecimal.ROUND_HALF_UP).doubleValue();
	}

 2.将double数据转换成String型,使数据不以科学计数法的形式表示。

	public  String toPlainString(double d) {
		BigDecimal b = new BigDecimal(Double.toString(d));
		return b.toPlainString();
	}

 3.多位小数求余,类似于%运算符,不过支持浮点数

	public double rem(double base, double divisor, int digit) {
		BigDecimal bgBase = new BigDecimal(Double.toString(base)).setScale(digit, BigDecimal.ROUND_HALF_UP);
		BigDecimal bgDivisor = new BigDecimal(Double.toString(divisor)).setScale(digit, BigDecimal.ROUND_HALF_UP);
		return bgBase.remainder(bgDivisor).setScale(digit, BigDecimal.ROUND_HALF_UP).doubleValue();
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值