|||
下面以保留两位小数为例,其中方法一和方法二都是四舍五入,但方法三不是。
1、方法一:按指定位数输出,但原值未改动
double x1 = 0.026,x2=0.023;
System.out.println(String.format("%.2f", x1));
System.out.println(String.format("%.2f", x2));
结果如下:
0.03
0.02
2、方法二:直接将原值按指定位数保留
//方案1:
x1 = (double)(Math.round(x1*100)/100.0);
//方案2:
DecimalFormat df = new DecimalFormat("#.##");
x1 = Double.parseDouble(df.format(x1));
//方案3:
x1 = Double.parseDouble(String.format("%.2f",x1));
//方案4:
BigDecimal bd = new BigDecimal(x1);
BigDecimal bd2 = bd.setScale(2,BigDecimal.ROUND_HALF_UP);
x1 = Double.parseDouble(bd2.toString());
3、方法三:不四舍五入
x1=((int)(x1*100))/100;
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-23 20:49
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社