数字操作类(BigDecimal)类

大浮点数类:
BigInteger不能够保存小数,而BigDecimal能够保存

BigDecimal构造方法1:public BigDecimal(String val)
BigDecimal构造方法2:public BigDecimal(double val)

与BigInteger一样,BigDecimal本身也支持基础的数学计算,除此之外,可以利用它来实现准确的四舍五入操作,Math.round操作所有的小数位都四舍五入了,遗憾的是BigDecimal类里面没有直接提供有四舍五入的支持,但是有除法操作支持。

public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
被除数,保留的小数位,进位模式

BigDecimal有个常量 public static int ROUND_HALF_UP

下面实现准确的四舍五入
范例:实现准确的四舍五入

package TestDemo;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Random;

class MyMath{
    /**
     * 实现准确位数的四舍五入
     * @param num 要进行四舍五入的数字
     * @param scale 要保留的小数位
     * @return 处理后的四舍五入数据
     */
    public static double round(double num,int scale){
        BigDecimal bigA=new BigDecimal(num);
        BigDecimal bigB=new BigDecimal(1);
        return bigA.divide(bigB,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
    }
}
public class TestDemo{
    
    public static void main(String[] args) throws Exception{
        System.out.println(MyMath.round(19.12312312313,2));
    }   


}


image.png

成功了。

1.Math类重点要清楚round方法的坑
2.Random类生成随机数
3.如果数据量大就是用BigInteger或者BigDecimal类(Number子类)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容