bigdecimal除以100,Bigdecimal除以100

http://www.itjxue.com  2023-01-18 08:02  来源:未知  点击次数: 

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选择保留数字模式就可以了。

(责任编辑:IT教学网)

更多

推荐其他营销文章