项目中钱(money)的类型应该用哪个?

浮点型(float,double):不适合做钱的类型

  double n1=0.03;
  double n2=0.02;
  System.out.println("double计算:"+(n1-n2));

结果为:0.009999999999999998

  float f1=0.02f; 
  float f2=0.01f;
  System.out.println("float计算:"+(f1-f2));

结果为:0.01  涉及到类型转换。

  BigDecimal bg=new BigDecimal("0.03");
  BigDecimal bg1=new BigDecimal("0.02");
  //加法
  System.out.println("加法:"+bg.add(bg1));
  //减法
  System.out.println("减法:"+bg.subtract(bg1));
  //乘法
  System.out.println("乘法:"+bg.multiply(bg1));
  //除法
  System.out.println("除法:"+bg.divide(bg1));

结果为: 加法:0.05、减法:0.01、乘法:0.0006、除法:1.5。

mony的精度是4位.  
mony的另外一个好处就是,在汇率转换的时候比较方便.并且在显示的时候,可以多元化.

Bigdecimal类是专门为解决浮点数无法精确计算而设计的。并且提供了常用的算术运算方法。特别是与数据库Decimal映射时,BigDecimal是最优方案。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值