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

如何在java中精确到指定位数

程序员文章站 2022-03-26 17:10:02
精确到指定位数现有152.12548745JAVA中的Math类不提供有精确到某位数的方法,但可以整合,使之精确介绍一个函数:Math.round()法则:四舍六入五成双当有效位数确定后,看有效位最后一个数字的后面一个数字num四舍:如果num小于等于4,则后面的数字直接舍去六入:如果num大于等于6,则最后一个有效位+1五成双:根据5五后面的数字来定(1)当五后有数时,最后一个有效位+1(2)当五后无数时,【1】五前为奇数,最后一个有效位+1;【2】五前为偶数,最后一个有效...

精确到指定位数

现有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

本文地址:https://blog.csdn.net/weixin_44898710/article/details/110290242

相关标签: java基础 java