String转double或者float会有精度丢失的问题

float  [] value=new   float[5];

value[0]=Float.parseFloat(rs.getString(1));
value[1]=Float.parseFloat(rs.getString(2));
value[2]=Float.parseFloat(rs.getString(1));
value[4]=Float.parseFloat(rs.getInt(1)+"");

BigDecimal b1 = new BigDecimal(Float.toString(value[0]));
BigDecimal b2 = new BigDecimal(Float.toString(value[1]*3));
BigDecimal b3 = new BigDecimal(Float.toString(value[2]));


value[3]=(b1.subtract(b2)).subtract(b3).floatValue();

 转成BigDecimal进行计算

原文地址:https://www.cnblogs.com/ziyueer/p/4150387.html