Java 小數保留一位有效數字


最近在項目中遇到一個小問題,對小數保留一位有效數字;在這里跟大家分享一下解決方法,如果大家有更好的解決方法歡迎評論指點

    //小數部分取到第一個非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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM