java 第一种想法:
double a = 0.1222; int b = (int) (a*100/1); a = b*0.01;对于小数我无法进行详细的运算,但是将其成语10的n次方,后,将其小数点后的数据删掉,再将其乘以0.1的n次方后,我们得到了一组数据,一组有用的数据。优点:容易想到,缺点:没有四舍五入
第二种想法:
double allAmt = 0.19999; DecimalFormat df = new DecimalFormat(); df.setMaximumFractionDigits(2); df.setMinimumFractionDigits(2); String newAllQtyOrd = df.format(allAmt);double不好转换小数点后两位,那么我将其转换后就可以了
第三种想法:
double a = 1.999; BigDecimal b = new BigDecimal(a); String c = b.setScale(2,BigDecimal.ROUND_UP).stripTrailingZeros().toPlainString(); a = Double.valueOf(c);思路如上,但是中间的产物不一样。
double保留小数的方法有很多,但是,我不建议用double,如果可以那么还是使用BigDecimal比较好,BigDecimal的精度更高,运算更加方便。
