Java:对double值进行四舍五入,保留两位小数的几种方法

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/18 07:29:09
Java:对double值进行四舍五入,保留两位小数的几种方法
xU[OG+ŶVM*J+ U!Qh;ݛv4jTɠ$HIRBR`.O 9c Um9s.337xm/Cí-k++l=h-Jy-> ^^3\܋U=\: riEƛzosiV V&ߘu0ҧg|LKƅw;W:]V 8^S=eqm94|g9sӭ:\7u#HbΫ|Y ^FkSe[?WSV)= V1_M[}[MF24۷;^nz(yPi\<5TTA-8؊kS|9,kmU}'JafrhJ Yv0#mFݓ]CvLv3Fnp` gS+2^结A(r=CIס!웬bP[1(~U&[ӊ0a@1]g"g>էt)?fpPac3;¦Z+U䐟RfJ %z vč[;)1>[b玾,7 g$ʙL˪;lUI&4=ȤĸHuʉĿ+UtKX'I b AN*eJ/bpN+|1pONjz HM?oI7NI:v<̲h&/>LS>w; 27;O gӴŝǐȃe𦓐Q;#}ƀ

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);}/**
* 如果只是用于程序中的格式化数值然后输出,那么这个方法还是挺方便的.