MENU

精确到指定位数

• November 14, 2020 • java基础

精确到指定位数

现有152.12548745
JAVA中的Math类不提供有精确到某位数的方法,但可以整合,使之精确

介绍一个函数:Math.round()

法则:四舍六入五成双

当有效位数确定后,看有效位最后一个数字的后面一个数字num

  1. 四舍:如果num小于等于4,则后面的数字直接舍去
  2. 六入:如果num大于等于6,则最后一个有效位+1
  3. 五成双:根据5五后面的数字来定

(1)当五后有数时,最后一个有效位+1

(2)当五后无数时,【1】五前为奇数,最后一个有效位+1;【2】五前为偶数,最后一个有效位不加

精确两位

源程序

class MathUtil{
    private MathUtil() {
    }
    public static double round(double number, int scale){
        return Math.round(number * Math.pow(10, scale)) / Math.pow(10, scale);
    }
}
public class Main {
    public static void main(String[] args) {
        System.out.println(MathUtil.round(152.12548745, 2));
    }
}

运行结果:

152.13


精确三位

源程序

class MathUtil{
    private MathUtil() {
    }
    public static double round(double number, int scale){
        return Math.round(number * Math.pow(10, scale)) / Math.pow(10, scale);
    }
}
public class Main {
    public static void main(String[] args) {
        System.out.println(MathUtil.round(152.12548745, 4));
    }
}

运行结果:

152.1255


代码编译器:IntelliJ IDEA 20.01

Archives QR Code Tip
QR Code for this page
Tipping QR Code