java中金额BigDecimal和flout double的转换

从json中获取得到String
      (Float)   Math.round(jsondata.getFloat("amount"));



package cn.itcast.bigdecimal;
import java.math.BigDecimal;
public class BigDecimalDemo {
     public static void main(String[] args ) {
         //float类型---------------------------
        Float f1 = 0.09F;
        Float f2 = 0.01F;
        BigDecimal bd1 = new BigDecimal( f1 );
        BigDecimal bd2 = new BigDecimal( f2 );
        
        System. out .println( f1 );                      //0.09
        System. out .println( bd1 );                     //0.0900000035762786865234375
        System. out .println( bd1 .add( bd2 ));            //0.10000000335276126861572265625
        System. out.println(bd1.add(bd2).setScale(2,BigDecimal.ROUND_HALF_UP));//0.10 四舍五入
        System. out .println( f1 + f2 );                   //0.1
        
        
         //直接输小数-------------------------------
        BigDecimal bd5 = new BigDecimal(0.09);
        BigDecimal bd6 = new BigDecimal(0.01);
        
        System. out .println( bd5 .add( bd6 ));     //0.09999999999999999687749774324174723005853593349456787109375
        System. out .println(0.09+0.01);       //0.09999999999999999
        
         //Double---------------------------------
        Double d1 = 0.09d;
        Double d2 = 0.01d;
        BigDecimal bd7 = new BigDecimal( d1 );
        BigDecimal bd8 = new BigDecimal( d2 );
        
        System. out .println( d1 );              //0.09
        System. out .println( bd7 );             //0.0899999999999999966693309261245303787291049957275390625
        System. out .println( bd7 .add( bd8 ));     //0.09999999999999999687749774324174723005853593349456787109375
        System. out .println( d1 + d2 );           //0.09999999999999999
        
         //字符串---------------------------------------
        String s1 = "0.09" ;
        String s2 = "0.01" ;
        BigDecimal bd3 = new BigDecimal( s1 );
        BigDecimal bd4 = new BigDecimal( s2 );
        System. out .println( bd3 );             //0.09
        System. out .println( bd3 .add( bd4 ));     //0.10
        System. out .println( bd3 .add( bd4 ));     //0.10       
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值