用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

Java中保留小数点的方法

2017-09-07 作者: 低调的小飞举报

[java]代码库

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat;
/*
 * Java中保留小数点的方法
 */
public class GetNum {
public static void main(String[] args) {
		
		System.out.println(getNum(0.23656,"#.0000",false));//.2365 不四舍五入,整数部分为0时省略
		System.out.println(getNum(0.23656,"0.0000",false));//0.2365不进行四舍五入,整数部分为0时不省略
		System.out.println(getNum(0.23656,"0.0000",true));//0.2366 进行四舍五入 
		System.out.println(getNum(0.236,"0.0000",true));//0.2366 进行四舍五入  不够的小数部分补零
//		
//		System.out.println(getNum2(0.23456,3));//精确小数点第三位,四舍五入
		
		//System.out.println(getNum3(0.2345,3,false));//0.234
		
//		System.out.println(getNum4(0.2345,3,false));//0.234
//		System.out.println(getNum4(0.2345,3,true));//0.235
//		System.out.println(getNum4(0.23,3,false));//0.23 没有补零
	}
	
	
	public static String getNum(double str,String pattern,boolean flag){
		DecimalFormat format = new DecimalFormat(pattern);//保留小数点三位
		if(flag) {
			format.setRoundingMode(RoundingMode.UP);//进行四舍五入
		} else {
			format.setRoundingMode(RoundingMode.DOWN);//不进行四舍五入
		}
		return format.format(str);
	}
	
	
	public static String getNum2(double str , int decima) {
		long n = 1;
		for(int i = 1 ; i <= decima; i++ )
			n *= 10;
		return String.valueOf((int)(str * n +0.5) / (n * 1.0));
	}
	
	
	public  static double getNum3(double str,int point, boolean flag){
		BigDecimal   b   =   new   BigDecimal(str); 
		if(flag) {
			return b.setScale(point,  BigDecimal.ROUND_HALF_UP).doubleValue();
		} 
		return b.setScale(point,  BigDecimal.ROUND_HALF_DOWN).doubleValue();
	}
	
	
	
	public static String getNum4(double d,int point,boolean flag) {
        NumberFormat nf = NumberFormat.getNumberInstance();
        nf.setMaximumFractionDigits(point); // 保留小数点位数
        if(flag){
        	 nf.setRoundingMode(RoundingMode.UP);//四舍五入
        }else {
        	 nf.setRoundingMode(RoundingMode.DOWN);// 不四舍五入
        }
        return nf.format(d);
    }
	
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...