精华内容
下载资源
问答
  • java四舍五入保留2位小数的小坑,附例子分享:java 1.8 RoundingMode.HALF_UP import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.NumberFormat; ...
    java四舍五入保留2位小数
    的小坑,附例子分享:java 1.8
    RoundingMode.HALF_UP 
    import java.math.BigDecimal;
    import java.math.RoundingMode;
    import java.text.DecimalFormat;
    import java.text.NumberFormat;
    
    public class test02 {
    	public static void main(String[] args) throws Exception {
    		concurrency();
    	}
    
    	private static void concurrency() throws Exception {
    		Double d1=82.365;
    		Double d2=82.3651;
    		Double d3=82.265;
    		Double d4=82.375;
    		Double d5=82.3751;
    		Double d6=82.275;
    		System.out.println("test:-----------------"+d1+"-----"+d2+"-----"+d3+"------"+d4+"------"+d5+"------"+d6);
    		System.out.println("理想结果:-------------"+82.37+"-----"+82.37+"-----"+82.27+"------"+82.38+"------"+82.38+"------"+82.28);
    
    		//写法1,结果不不符合
    		DecimalFormat df = new DecimalFormat("#0.00");
    		df.setRoundingMode(RoundingMode.HALF_UP);
    		System.out.println("RoundingMode.HALF_UP:--"+df.format(d1)+"-----"+df.format(d2)+"-----"+df.format(d3)+"------"+df.format(d4)+"------"+df.format(d5)+"------"+df.format(d6));
    
    		//写法2,结果不不符合
    		DecimalFormat df2 = new DecimalFormat("#0.00");
    		df2.setRoundingMode(RoundingMode.HALF_EVEN);//RoundingMode.HALF_EVEN  为默认
    		System.out.println("RoundingMode.HALF_EVEN:"+df2.format(d1)+"-----"+df2.format(d2)+"-----"+df2.format(d3)+"------"+df2.format(d4)+"------"+df2.format(d5)+"------"+df2.format(d6));
    
    		//写法3,结果不不符合
    		DecimalFormat df3 = new DecimalFormat("#0.00");
    		df3.setRoundingMode(RoundingMode.UP);
    		System.out.println("RoundingMode.UP:-------"+df3.format(d1)+"-----"+df3.format(d2)+"-----"+df3.format(d3)+"------"+df3.format(d4)+"------"+df3.format(d5)+"------"+df3.format(d6));
    
    		//写法4,结果不不符合
    		DecimalFormat df4 = new DecimalFormat("#0.00");
    		df4.setRoundingMode(RoundingMode.FLOOR);
    		System.out.println("RoundingMode.FLOOR:----"+df4.format(d1)+"-----"+df4.format(d2)+"-----"+df4.format(d3)+"------"+df4.format(d4)+"------"+df4.format(d5)+"------"+df4.format(d6));
    
    		//RoundingMode 下的其余 DOWN,CEILING,HALF_DOWN,UNNECESSARY   82.3650 不做test
    
    		NumberFormat nf = NumberFormat.getNumberInstance();
    		// 保留两位小数
    		nf.setMaximumFractionDigits(2);
    		// 如果不需要四舍五入,可以使用RoundingMode.DOWN
    		nf.setRoundingMode(RoundingMode.UP);
    		System.out.println("NumberFormat format:---"+nf.format(d1)+"-----"+nf.format(d2)+"-----"+nf.format(d3)+"------"+nf.format(d4)+"------"+nf.format(d5)+"------"+nf.format(d6));
    
    		//BigDecimal divide RoundingMode.UP
    		System.out.println("BigDecimal divide:-----"+fornum(d1,1,2)+"-----"+fornum(d2,1,2)+"-----"+fornum(d3,1,2)+"------"+fornum(d4,1,2)+"------"+fornum(d5,1,2)+"------"+fornum(d6,1,2));
    
    		//Math.round
    		System.out.println("Math.round:------------"+formatDouble1(d1)+"-----"+formatDouble1(d2)+"-----"+formatDouble1(d3)+"------"+formatDouble1(d4)+"------"+formatDouble1(d5)+"------"+formatDouble1(d6));
    	}
    //scale  保留小数位
    	public static Double fornum(Double v1, int v2, int scale) {
    		if (v2 != 0) {
    			BigDecimal b1 = new BigDecimal(v1);
    			BigDecimal b2 = new BigDecimal(Double.toString(v2));
    			return b1.divide(b2,scale,RoundingMode.UP).doubleValue();
    		} else {
    			return 0.00;
    		}
    	}
    	public static double formatDouble1(double d) {
    		return (double)Math.round(d*100)/100;
    	}
    }
    

    结果:
    test:------------82.365-----82.3651-----82.265------82.375------82.3751------82.275
    理想结果:--------------82.37-----82.37-----82.27------82.38------82.38------82.28
    RoundingMode.HALF_UP:--82.36-----82.37-----82.27------82.38------82.38------82.28
    RoundingMode.HALF_EVEN:82.36-----82.37-----82.27------82.38------82.38------82.28
    RoundingMode.UP:-------82.37-----82.37-----82.27------82.38------82.38------82.28
    RoundingMode.FLOOR:----82.36-----82.36-----82.26------82.37------82.37------82.27
    NumberFormat format:---82.37-----82.37-----82.27------82.38------82.38------82.28-T
    BigDecimal divide:-----82.37-----82.37-----82.27------82.38------82.38------82.28-T
    Math.round:------------82.37-----82.37-----82.27------82.38------82.38------82.28-T


    展开全文
  • JavaJava四舍五入保留1小数、2位小数...

    万次阅读 多人点赞 2018-10-17 08:37:01
    Java四舍五入保留1小数的方法: import java.math.BigDecimal; public class Test { public static void main(String[] args) { double d1 = 3.02; System.out.println(d1); //利用字符串格式化的...

    方法一:使用字符串格式化实现四舍五入(支持float和double类型)

      		double data = 3.02;
            //利用字符串格式化的方式实现四舍五入,保留1位小数
            String result = String.format("%.1f",data);
            //1代表小数点后面的位数, 不足补0。f代表数据是浮点类型。保留2位小数就是“%.2f”,依此累推。
            System.out.println(result);//输出3.0
    

    方法二:使用BigDecimal实现四舍五入(支持float和double类型)

      		double data = 3.02;
            //利用BigDecimal来实现四舍五入.保留一位小数
            double result = new BigDecimal(data).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
            //1代表保留1位小数,保留两位小数就是2,依此累推
            //BigDecimal.ROUND_HALF_UP 代表使用四舍五入的方式
            System.out.println(result);//输出3.0
    

    方法三:使用DecimalFormat实现四舍五入(仅支持float类型)

    		DecimalFormat decimalFormat=new DecimalFormat("#.##");
    		//保留2位小数,.后面的#代表小数点后面的位数,保留3位小数就是#.###
    		System.out.println(decimalFormat.format(3.065f));//输出3.07
    		System.out.println(decimalFormat.format(3.065));//double类型,输出3.06
    
    展开全文
  • package basic; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.NumberFormat;... * create by liuzhiwei on 2020/3/29 ...public class 保留2...
    package basic;
    
    import java.math.BigDecimal;
    import java.math.RoundingMode;
    import java.text.DecimalFormat;
    import java.text.NumberFormat;
    
    /**
     * create by liuzhiwei on 2020/3/29
     */
    public class 保留2位小数的四种方法 {
        public static void main(String[] args) {
            double d = 233756.45566;
    
            //方法一:最简便的方法,调用DecimalFormat类
            DecimalFormat df = new DecimalFormat(".00");
            System.out.println(df.format(d));
    
            //方法二:直接通过String类的format函数实现 
            System.out.println(String.format("%.2f", d));
    
    
            //方法三:通过BigDecimal类实现
            BigDecimal bg = new BigDecimal(d);
            double d3 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
            // 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN
            double d4 = bg.setScale(2, RoundingMode.UP).doubleValue();
            System.out.println(d3);
            System.out.println(d4);
    
            //方法四:通过NumberFormat类实现
            NumberFormat nf = NumberFormat.getNumberInstance();
            nf.setMaximumFractionDigits(2);
            // 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN
            nf.setRoundingMode(RoundingMode.UP);
            System.out.println(nf.format(d));
    
    
            //方法五:一种老土的方法
            System.out.println((double) Math.round(d * 100) / 100);
    
        }
    }
    
    
    • 结果
    233756.46
    233756.46
    233756.46
    233756.46
    233,756.46
    233756.46
    
    展开全文
  • Double f=3.1415924 String result = String.format("%.2f", f); System.out.println(result);  String.format实际上就是一个格式化输出。 转载于:...

     

      Double f=3.1415924
      String result = String.format("%.2f", f);
      System.out.println(result); 
    

      String.format实际上就是一个格式化输出。

    转载于:https://www.cnblogs.com/cbread/archive/2013/04/24/3039464.html

    展开全文
  • Java 四舍五入 保留N小数

    千次阅读 2015-03-18 17:33:34
    Java 四舍五入 保留1小数: double scale = 3.1015926;  DecimalFormat fnum = new DecimalFormat("##0.0");  String dd=fnum.format(scale);...Java 四舍五入 保留2位小数: double scale = 3.1
  • 摘要 腾兴网为您分享:java四舍五入float保留小数,远离手机,相机美颜,未来屋,微视等软件知识,以及流光,证券从业随身学,老a工具箱,polarr,特斯拉app,ae插件合集,福奈特,app名称,哈士奇表情,电视台...
  • 主要介绍了java四舍五入使java保留2位小数示例,大家参考使用
  • 简介主要涉及类BigDecimal,舍入模式RoundingMode,及其他类java支持7中舍入法1、 ROUND_UP:远离零方向舍入。向绝对值最大的方向舍入,只要舍弃非0即进位。2、 ROUND_DOWN:趋向零方向舍入。向绝对值最小的方向...
  •  * double四舍五入保留x小数  * @param num 要四舍五入的浮点数  * @param scale 保留位数  */ public static double round(double num,int scale){ double dig = Math.pow(10, scale); ...
  • 在练习蓝桥杯习题的时候第题就卡壳了,在于四舍五入保留小数位数。在八六小数位数的时候总有那么两个值不正确。于是上网搜了一下相关资料,发现了个嘿嘿嘿……,见一下代码: import java.math.BigDecimal; ...
  • java中double类型精度保留小数点后两,同时满足四舍五入,代码如下: String str = "86.64566666"; BigDecimal bd = new BigDecimal(Double.parseDouble(str)); double d = bd.setScale(2, BigDecimal.ROUND_HALF...
  • 下面小编就为大家带来一篇java 四舍五入保留小数的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Java四舍五入保留1小数的方法: import java.math.BigDecimal; public class Test { public static void main(String[] args) { double data = 3.02; //利用字符串格式化的方式实现四舍五入,保留1小数 ...
  • public double persist(double num, int x) { num *= Math.pow(10, x + 1);// 10的x+1次方;x表示所要最终要保留的位数 // 强制转化为Int类型 sum = (int) num; double a = (double) num / 10; // 进行
  • Java四舍五入保留指定位数的小数作为一个使用非常频繁的技巧,值得记录总结下来。 // 方式一: double f = 3.1516; BigDecimal b = new BigDecimal(f).setScale(2, BigDecimal.ROUND_HALF_UP); double f1 = b....
  • java 四舍五入保留小数

    千次阅读 2018-09-04 16:35:38
    将其结果四舍五入保留小数,写了个方法 主要用到 java.math.BigDecimal这个类 /**  *   * @param js 缴费基数  * @param rate 缴费比例  * @return  */  private static double payMoney(...
  • 计算个人所得税,需要四舍五入保留2位小数 csdn有很多篇文章讲述了四舍五入保留2位小数的多种方法,经过实测,下面这种方法最准确 通过对多个边缘值的测试,均无问题 public class MathUtil { private MathUtil() {...
  • // java 四舍五入保留小数 // 方式一: double f = 3.1516; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); // 方式: new java.text.Decima...
  • Java四舍五入保留小数方法汇总

    千次阅读 2017-06-21 17:57:52
    在Android计算或显示中常会用到Java四舍五入保留1或多小数,之前只会用BigDecimal(可保证数值精度,也可用自主保留位数),自主选择吧,方法都很好,转自... // 方式一: double f = 3.1516;...
  • Java四舍五入保留小数点后几

    千次阅读 2019-11-27 19:45:30
    // 案例:四舍五入保留小数点后1 double d1 = 123.456; double d2 = 654.321; double v1 = (double) Math.round(d1 * 10) / 10; double v2 = (double) Math.round(d2 * 10) / 10; System.out...
  • java 四舍五入保留 81.585 为什么不进位?
  • 本篇文章主要介绍了java四舍五入保留位示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • [java] view plaincopy import java.math.BigDecimal;  import java.text.DecimalFormat;  import java.text.NumberFormat;    public class test {   public static void main...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,352
精华内容 9,340
关键字:

java四舍五入保留2位

java 订阅