Double d = 5.225;
//以保留两位小数为例(四舍五入方式)
//法1:BigDecimal (推荐使用,可以设置进位的方式)
BigDecimal bd = new BigDecimal(d);
double d1 = bd.setScale(2, RoundingMode.Up).doubleValue();
//法2:DecimalFormat
DecimalFormat df = new DecimalFormat("#.00");//会自动四舍五入的
double d1 = Double.valueOf(df.format(d));
//法3: String.format()
String s = String.format("%.2f", d);//会自动四舍五入
double d1 = Double.valueOf(s);
//法4:NumberFormat (缺点是小数前的位数过多,每三位会拼一个逗号,会转换异常)
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(2);//设最高位数为2
String s = nf.format(d);
double d1 = Double.valueOf(s);
关于java的double保留几位小数的问题
最新推荐文章于 2024-05-15 22:59:32 发布