double保留两位小数

tech2026-01-24  4

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的精度更高,运算更加方便。

最新回复(0)