楼上的也不好使。 float和double是用来进行科学计算的,经过运算得出的数值都是不精确的。 在需要精确运算的地方可以用BigInteger,BigDecimal。 double a=222.1000; BigDecimal dec1 = new BigDecimal(a); int c = (int)a; BigDecimal dec2 = new BigDecimal((double)c); BigDecimal result = dec1.subtract(dec2); System.out.println(result.floatValue());
float和double是用来进行科学计算的,经过运算得出的数值都是不精确的。
在需要精确运算的地方可以用BigInteger,BigDecimal。
double a=222.1000;
BigDecimal dec1 = new BigDecimal(a);
int c = (int)a;
BigDecimal dec2 = new BigDecimal((double)c);
BigDecimal result = dec1.subtract(dec2);
System.out.println(result.floatValue());