bigdecimal除以100,Bigdecimal除以100
java里0.20000000如何保留五位小数
Java中Double保留后小数位的几种方法
1.能四舍五入
1 double d = 114.145;2 d = (double) Math.round(d * 100) / 100;3 System.out.println(d);
2.?BigDecimal.ROUND_HALF_UP表示四舍五入,BigDecimal.ROUND_HALF_DOWN也是五舍六入,BigDecimal.ROUND_UP表示进位处理(就是直接加1),BigDecimal.ROUND_DOWN表示直接去掉尾数。
1 double d = 114.145;2 BigDecimal b = new BigDecimal(d);3 d = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); ? ? ? ?
4 System.out.println(d);
返回String型的
1.#.00表示保留后两位,它的处理方式是直接截掉不要的尾数,不四舍五入。
1 double d = 114.145;2 DecimalFormat df = new DecimalFormat("#.00");3 String str = df.format(d);4 System.out.println(str);
2.%.2f表示保留后两位,它的处理方式也是直接截掉不要的尾数,不四舍五入。
1 double d = 114.145;2 String.format("%.2f", d);
3.RoundingMode.HALF_DOWN表示?五舍六入,负数先取绝对值再五舍六入再负数,RoundingMode.HALF_UP:表示四舍五入,负数先取绝对值再五舍六入再负数。
1 double d = 114.1452 NumberFormat nf = NumberFormat.getNumberInstance();3 // 保留两位小数4 nf.setMaximumFractionDigits(2);
5 // 如果不需要四舍五入,可以使用RoundingMode.DOWN6 nf.setRoundingMode(RoundingMode.UP);7 System.out.println(nf.format(d));
箅式:100*102*104*106*...*998的积的末尾的连续零的个数有( )个?
100*102*104*106*...*998的积的末尾的连续零的个数有(99)个
100*102*104*106*...*198的积的末尾的连续零的个数有(11)个
100*102*104*106*...*298的积的末尾的连续零的个数有(22)个
100*102*104*106*...*398的积的末尾的连续零的个数有(33)个
……
100*102*104*106*...*n98的积的末尾的连续零的个数有(11n)个
java代码 double数值错误 为什么s不是0.0036 怎么处理
涉及到高精度计算的话,建议你用?java.math.BigDecimal 类。Math计算会丢失精度,也不好把握。假如你要取数字0.0036的话,可以调用
System.out.println(new?BigDecimal(0.0035999999).setScale(4,2));//0.0036
?/*
BigDecimal????setScale(int?newScale,?int?roundingMode)?
??????????返回一个?BigDecimal,其标度为指定值,其非标度值通过此?BigDecimal?的非标
??????????度值乘以或除以十的适当次幂来确定,以维护其总值。????
?BigDecimal????setScale(int?newScale,?RoundingMode?roundingMode)?
??????????返回?BigDecimal,其标度为指定值,其非标度值通过此?BigDecimal?的非标度值
??????????乘以或除以十的适当次幂来确定,以维护其总值。????
?
?*/
BigDecimal方法里有好多的取舍模式,对照api选择保留数字模式就可以了。