欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java 小数保留一位有效数字

程序员文章站 2022-06-21 23:05:03
最近在项目中遇到一个小问题,对小数保留一位有效数字;在这里跟大家分享一下解决方法,如果大家有更好的解决方法欢迎评论指点 //小数部分取到第一个非0位,并向正上取值 public double getCeilDouble(double number) { String str = new Decima ......

最近在项目中遇到一个小问题,对小数保留一位有效数字;在这里跟大家分享一下解决方法,如果大家有更好的解决方法欢迎评论指点

    //小数部分取到第一个非0位,并向正上取值
    public double getceildouble(double number) {
        string str = new decimalformat("0.0000000000").format(number);        //将number格式化为小数点后面有10位数的小数
        string[] fore = str.split("[1-9]", 2);//截取小数前面为0的部分《如:0.0002,取0.000)
        string[] split = str.split(".", 2);        //截取小数点后面的部分(包含了小数点)
        int aft = integer.parseint(split[1].substring(1));    //去除小数点然后转成整数
        int len = (aft+"").length();//获取有几位数
        aft=(int) math.ceil(aft/math.pow(10, len-1));        //最后保留1位(向正取值)
        return double.parsedouble(fore[0]+aft);
    }

因为需求有效数字我使用的是向上取整,如果需要向下取整或者四舍五入可以将math.ceil替换成math.floor或者math.round