您的位置:首页 > 编程语言 > Java开发

java处理保留小数点后几位

2016-10-21 16:29 281 查看
方式一:

四舍五入 

double   f   =   111231.5585; 

BigDecimal   b   =   new   BigDecimal(f); 

double   f1   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue(); 

保留两位小数 

--------------------------------------------------------------- 

方式二:

Java.text.DecimalFormat   df   =new   java.text.DecimalFormat("#.00"); 

df.format(你要格式化的数字);

例:new java.text.DecimalFormat("#.00").format(3.1415926)

#.00 表示两位小数 #.0000四位小数 以此类推...

方式三:

double d = 3.1415926;

String result = String .format("%.2f",d);

%.2f %. 表示 小数点前任意位数   2 表示两位小数 格式后的结果为f 表示浮点型

方式四:

NumberFormat ddf1=NumberFormat.getNumberInstance() ;

void setMaximumFractionDigits(int digits)

digits 显示的数字位数

为格式化对象设定小数点后的显示的最多位,显示的最后位是舍入的

import java.text.* ;

import java.math.* ;

class TT

{

public static void main(String args[])

{ double x=23.5455;

NumberFormat ddf1=NumberFormat.getNumberInstance() ;

ddf1.setMaximumFractionDigits(2);

String s= ddf1.format(x) ;

System.out.print(s);

}

}

public class test1_format {

public static void main(String[] args) {
BigDecimal decimal = new BigDecimal("1.12345");
System.out.println(decimal);
BigDecimal setScale = decimal.setScale(4,BigDecimal.ROUND_HALF_DOWN);
System.out.println(setScale);

BigDecimal setScale1 = decimal.setScale(4,BigDecimal.ROUND_HALF_UP);
System.out.println(setScale1);
}
}


 



参数定义

ROUND_CEILING 

Rounding mode to round towards positive infinity. 

向正无穷方向舍入 

ROUND_DOWN 

Rounding mode to round towards zero. 

向零方向舍入 

ROUND_FLOOR 

Rounding mode to round towards negative infinity. 

向负无穷方向舍入 


ROUND_HALF_DOWN
 

Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round down. 

向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5 

ROUND_HALF_EVEN 

Rounding mode to round towards the "nearest neighbor" unless both neighbors are equidistant, in which case, round towards the even neighbor. 

向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP ,如果是偶数,使用ROUND_HALF_DOWN 

ROUND_HALF_UP 

Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round up. 

向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6 


ROUND_UNNECESSARY
 

Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary. 

计算结果是精确的,不需要舍入模式 

ROUND_UP 

Rounding mode to round away from zero. 

向远离0的方向舍入
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: