在JAVA代码开发中,我们经常用到对小数的处理,很多场景下要保留几位小数,比如在支付场景和订单中对金额的处理中,这个有很多方法,以下就介绍下常用的几种方法,我们以保留两位小数为例。
【推荐】第一种:String.format方法
double num = 1234.5678; //保留两位小数 System.out.println(String.format("%.2f", num)); //保留三位小数 System.out.println(String.format("%.3f", num));
第二种:DecimalFormat.format方法
double num = 1234.5678; //保留两位小数 DecimalFormat df = new DecimalFormat("#.00"); //保留三位小数 DecimalFormat df = new DecimalFormat("#.000"); System.out.println(df.format(num));
第三种:适用于大精度,BigDecimal.setScale方法
double num = 1234.5678; BigDecimal bd = new BigDecimal(num); //保留两位小数 double result = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); //保留三位小数 double result = bd.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue(); System.out.println(result);
第四种:NumberFormat.setMaximunFractionDigits方法
double num = 1234.5678; NumberFormat nf = NumberFormat.getNumberInstance(); //保留两位小数 nf.setMaximumFractionDigits(2); //保留三位小数 nf.setMaximumFractionDigits(3); System.out.println(nf.format(num));
以上就是可用的方法了。