如何在java中精确到指定位数
程序员文章站
2022-07-10 17:26:41
精确到指定位数现有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
-
四舍:如果num小于等于4,则后面的数字直接舍去
-
六入:如果num大于等于6,则最后一个有效位+1
-
五成双:根据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