Java:对double值进行四舍五入,保留两位小数的几种方法
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/15 13:09:41
![Java:对double值进行四舍五入,保留两位小数的几种方法](/uploads/image/z/1066979-11-9.jpg?t=Java%EF%BC%9A%E5%AF%B9double%E5%80%BC%E8%BF%9B%E8%A1%8C%E5%9B%9B%E8%88%8D%E4%BA%94%E5%85%A5%2C%E4%BF%9D%E7%95%99%E4%B8%A4%E4%BD%8D%E5%B0%8F%E6%95%B0%E7%9A%84%E5%87%A0%E7%A7%8D%E6%96%B9%E6%B3%95)
Java:对double值进行四舍五入,保留两位小数的几种方法
Java:对double值进行四舍五入,保留两位小数的几种方法
Java:对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 {/**
* 保留两位小数,四舍五入的一个老土的方法*@paramd*@return*/publicstaticdoubleformatDouble1(doubled) {return(double)Math.round(d*100)/100;}/**
* The BigDecimal class provides operations for arithmetic,scale manipulation,rounding,comparison,hashing,and format conversion.*@paramd*@return*/publicstaticdoubleformatDouble2(doubled) {//旧方法,已经不再推荐使用//BigDecimal bg = new BigDecimal(d).setScale(2,BigDecimal.ROUND_HALF_UP);//新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN
BigDecimal bg =newBigDecimal(d).setScale(2
,RoundingMode.UP);returnbg.doubleValue();}/**
* NumberFormat is the abstract base class for all number formats.
* This class provides the interface for formatting and parsing numbers.*@paramd*@return*/publicstaticString formatDouble3(doubled) {NumberFormat nf=NumberFormat.getNumberInstance();//保留两位小数
nf.setMaximumFractionDigits(2);//如果不需要四舍五入,可以使用RoundingMode.DOWN
nf.setRoundingMode(RoundingMode.UP);returnnf.format(d);}/**
* 这个方法挺简单的.
* DecimalFormat is a concrete subclass of NumberFormat that formats decimal numbers.*@paramd*@return*/publicstaticString formatDouble4(doubled) {DecimalFormat df=newDecimalFormat("#.00");returndf.format(d);}/**
* 如果只是用于程序中的格式化数值然后输出,那么这个方法还是挺方便的.