Java四舍五入时保留指定小数位数的五种方式
方式一:
doublef=3.1516; BigDecimalb=newBigDecimal(f); doublef1=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); 输出结果f1为3.15;
源码解读:
publicBigDecimalsetScale(intnewScale,introundingMode)//intnewScale为小数点后保留的位数,introundingMode为变量进行取舍的方式;
BigDecimal.ROUND_HALF_UP属性含义为为四舍五入
方式二:
Stringformat=newDecimalFormat("#.0000").format(3.1415926); System.out.println(format); 输出结果为3.1416
解读:
#.00表示两位小数#.0000四位小数以此类推…
方式三:
doublenum=3.1415926; Stringresult=String.format("%.4f",num); System.out.println(result); 输出结果为:3.1416
解读:
%.2f中%.表示小数点前任意位数2表示两位小数格式后的结果为f表示浮点型。
方式四:
doublenum=Math.round(5.2544555*100)*0.01d; System.out.println(num); 输出结果为:5.25
解读:
最后乘积的0.01d表示小数点后保留的位数(四舍五入),0.0001为小数点后保留4位,以此类推......
方式五:
1.功能
将程序中的double值精确到小数点后两位。可以四舍五入,也可以直接截断。
比如:输入12345.6789,输出可以是12345.68也可以是12345.67。至于是否需要四舍五入,可以通过参数来决定(RoundingMode.UP/RoundingMode.DOWN等参数)。
2.实现代码
packagecom.clzhang.sample; importjava.math.BigDecimal; importjava.math.RoundingMode; importjava.text.DecimalFormat; importjava.text.NumberFormat; publicclassDoubleTest{ /**保留两位小数,四舍五入的一个老土的方法*/ publicstaticdoubleformatDouble1(doubled){ return(double)Math.round(d*100)/100; } publicstaticdoubleformatDouble2(doubled){ //旧方法,已经不再推荐使用 //BigDecimalbg=newBigDecimal(d).setScale(2,BigDecimal.ROUND_HALF_UP); //新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN BigDecimalbg=newBigDecimal(d).setScale(2,RoundingMode.UP); returnbg.doubleValue(); } publicstaticStringformatDouble3(doubled){ NumberFormatnf=NumberFormat.getNumberInstance(); //保留两位小数 nf.setMaximumFractionDigits(2); //如果不需要四舍五入,可以使用RoundingMode.DOWN nf.setRoundingMode(RoundingMode.UP); returnnf.format(d); } /**这个方法挺简单的*/ publicstaticStringformatDouble4(doubled){ DecimalFormatdf=newDecimalFormat("#.00"); returndf.format(d); } /**如果只是用于程序中的格式化数值然后输出,那么这个方法还是挺方便的,应该是这样使用:System.out.println(String.format("%.2f",d));*/ publicstaticStringformatDouble5(doubled){ returnString.format("%.2f",d); } publicstaticvoidmain(String[]args){ doubled=12345.67890; System.out.println(formatDouble1(d)); System.out.println(formatDouble2(d)); System.out.println(formatDouble3(d)); System.out.println(formatDouble4(d)); System.out.println(formatDouble5(d)); } }
3.输出
12345.68
12345.68
12,345.68
12345.68
12345.68
以上就是Java四舍五入时保留指定小数位数的五种方式的详细内容,更多关于Java四舍五入时保留指定小数位数的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。