java中小数高精度类BigDecimal

java中小数高精度类BigDecimal

  1. 用途 :让小数运算结果更加精确

  2. 常见的构造方法?
    - public BigDecimal(double val)
    - public BigDecimal(String val)

//	public BigDecimal(double val); 
	BigDecimal bigDecimal =new BigDecimal(0.1);
	System.out.println(bigDecimal);//0.1000000000000000055511151231257827021181583404541015625
	BigDecimal bigDecimal2 =new BigDecimal(10.0);
	System.out.println(bigDecimal2);//10

//	public BigDecimal(String val);
	BigDecimal bigDecimal3 =new BigDecimal("0.1");
	System.out.println(bigDecimal3);//0.1
	BigDecimal bigDecimal4 =new BigDecimal("10.0");
	System.out.println(bigDecimal4);//10.0

注意:如果期望结果更加精确的话,建议使用字符串参数的构造方法

  1. 常见的成员方法?
    public BigDecimal add(另一个BigDecimal的对象):+法运算
    public BigDecimal subtract(另一个BigDecimal的对象):-法运算
    public BigDecimal multiply(另一个BigDecimal的对象):*法运算
    public BigDecimal divide(另一个BigDecimal的对象):/法运算
	BigDecimal bd1 = new BigDecimal("0.1");
	BigDecimal bd2 = new BigDecimal("0.2");
//	public BigDecimal add()
	BigDecimal db3 = bd1.add(bd2);
	System.out.println(db3);//0.3
	
//	public BigDecimal subtract()
	BigDecimal db4 = bd1.subtract(bd2);
	System.out.println(db4);//-0.1

//	public BigDecimal multiply()
	BigDecimal db5 = bd1.multiply(bd2);
	System.out.println(db5);//0.02
		
//	public BigDecimal divide()
	BigDecimal db6 = bd1.divide(bd2);
	System.out.println(db6);//0.5

public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
第一个参数:另一个BigDecimal的对象
第二个参数:保留几位小数
第三个参数:舍入模式
ROUND_DOWN:去尾
ROUND_UP:前进
ROUND_HALF_UP:四舍五入

	BigDecimal bd1 = new BigDecimal("10.0");
	BigDecimal bd2 = new BigDecimal("3.0");

	BigDecimal bd3 = bd1.divide(bd2);
	System.out.println(bd3);
	bd3 = bd1.divide(bd2, 2, BigDecimal.ROUND_DOWN);// 3.33
	System.out.println(bd3);
	bd3 = bd1.divide(bd2, 2, BigDecimal.ROUND_UP);// 3.34
	System.out.println(bd3);
	bd3 = bd1.divide(bd2, 2, BigDecimal.ROUND_HALF_UP);// 3.33
	System.out.println(bd3);
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何呵呵是大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值