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
这位老哥写的比较细 , 我的写的主要是给自己看的 ..哈哈....