BigDecimal类的加减乘除


对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。BigDecimal类的常用方法如表11-15所示。
表11-15 BigDecimal类的常用方法


public BigDecimal(double val)  构造  将double表示形式转换  为BigDecimal
public BigDecimal(int val)  构造  将int表示形式转换为  BigDecimal
public BigDecimal(String val)  构造  将字符串表示  形式转换为BigDecimal
public BigDecimal add(BigDecimal augend)  普通  加法
public BigDecimal subtract(BigDecimal  subtrahend)  普通  减法
public BigDecimal multiply(BigDecimal  multiplicand)  普通  乘法
public BigDecimal divide(BigDecimal  divisor)  普通  除法

范例:进行四舍五入的四则运算

package org.lxh.demo11.numberdemo;
import java.math.BigDecimal;
class MyMath {
    public static double add(double d1, double d2)
{        // 进行加法运算
         BigDecimal b1 = new BigDecimal(d1);
         BigDecimal b2 = new BigDecimal(d2);
        return b1.add(b2).doubleValue();
     }
    public static double sub(double d1, double d2)
{        // 进行减法运算
         BigDecimal b1 = new BigDecimal(d1);
         BigDecimal b2 = new BigDecimal(d2);
        return b1.subtract(b2).doubleValue();
     }
    public static double mul(double d1, double d2)
{        // 进行乘法运算
         BigDecimal b1 = new BigDecimal(d1);
         BigDecimal b2 = new BigDecimal(d2);
        return b1.multiply(b2).doubleValue();
     }
    public static double div(double d1,
double d2,int len) {// 进行除法运算
         BigDecimal b1 = new BigDecimal(d1);
         BigDecimal b2 = new BigDecimal(d2);
        return b1.divide(b2,len,BigDecimal.
ROUND_HALF_UP).doubleValue();
     }
    public static double round(double d,
int len) {     // 进行四舍五入
操作
         BigDecimal b1 = new BigDecimal(d);
         BigDecimal b2 = new BigDecimal(1);
        // 任何一个数字除以1都是原数字
        // ROUND_HALF_UP是BigDecimal的一个常量,
表示进行四舍五入的操作
        return b1.divide(b2, len,BigDecimal.
ROUND_HALF_UP).doubleValue();
     }
}
public class BigDecimalDemo01 {
    public static void main(String[] args) {
         System.out.println("加法运算:" +
MyMath.round(MyMath.add(10.345,
3.333), 1));
         System.out.println("乘法运算:" +
MyMath.round(MyMath.mul(10.345,
3.333), 3));
         System.out.println("除法运算:" +
MyMath.div(10.345, 3.333, 3));
         System.out.println("减法运算:" +
MyMath.round(MyMath.sub(10.345,
3.333), 3));
     }
}


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值