double转BigDecimal的精度问题

1.问题 : 今天在写代码 将double 转成BigDecimal 的时候 , 发现转成的数据跟原数据不太一样

double b=57.3;
 
                   BigDecimal decimalB=new BigDecimal(b);
 
                   System.out.println(decimalB);





//结果
57.2999999999999971578290569595992565155029296875

很明显 , 精度丢失.

2.解决 : 

               double c=57.3;
 
                   BigDecimal decimalC=new 
 BigDecimal(Double.toString(c));
 
                   System.out.println(decimalC);
 
                  
 
                   double d=57.3;
 
                   BigDecimal decimalD=BigDecimal.valueOf(d);
 
                   System.out.println(decimalD);

//结果
57.3

57.3

借鉴原文 :https://www.cnblogs.com/yunliu0603/p/10064996.html

这位老哥写的比较细 , 我的写的主要是给自己看的 ..哈哈....

posted @ 2020-07-17 17:19  Anonymity_Zhang  阅读(1110)  评论(0编辑  收藏  举报