java四舍五入函数如何实现?

TheDisguiser 2020-09-02 11:07:35 java常见问答 7926

各种函数是java的精髓,熟练使用函数能极大的提高对项目的编码能力,本篇文章我们就来看看其中的四舍五入函数是怎么实现的。

java中我们可以使用java.math.BigDecimal来进行四舍五入,除此之外还能直接使用DecimalFormat来控制小数位数的精度来进行四舍五入。

//使用DecimalFormat直接就可以控制小数的位数了
double resultVar = 1231231.1123682321;
DecimalFormat dfc = new DecimalFormat("#.######");
String cellContent = dfc.format(resultVar);
System.out.println(" cellContent " + cellContent);

在函数使用中,有时它会动态保留小数的位数,甚至在银行家算法中四舍五入并不完全是5入,所以在某些情况下我们就需要将3.155退位成3.15.

这时我们可以

double d = value;
BigDecimal a = new BigDecimal(d);
//        BigDecimal a = new BigDecimal(String.valueOf(d));
System.out.println("a.setScale(2,2)=" + a.setScale(6, BigDecimal.ROUND_HALF_DOWN));BigDecimal.setScale() 方法用于格式化小数点
setScale(1, BigDecimal.ROUND_DOWN) 直接删除多余的小数位, 如2 .35 会变成2 .3
setScale(1, BigDecimal.ROUND_UP) 进位处理, 2.35 变成2 .4
setScale(1, BigDecimal.ROUND_HALF_UP) 四舍五入, 2.35 变成2 .4
setScaler(1, BigDecimal.ROUND_HALF_DOWN) 四舍五入, 2.35 变成2 .3, 如果是5则向下舍

例:

public class MathTest
{
    public static void main(String[] args)
    {
        System.out.println("小数点后第一位=5");
        System.out.println("正数:Math.round(11.5)=" + Math.round(11.5));
        System.out.println("负数:Math.round(-11.5)=" + Math.round(-11.5));
        System.out.println();
        System.out.println("小数点后第一位<5");
        System.out.println("正数:Math.round(11.46)=" + Math.round(11.46));
        System.out.println("负数:Math.round(-11.46)=" + Math.round(-11.46));
        System.out.println();
        System.out.println("小数点后第一位>5");
        System.out.println("正数:Math.round(11.68)=" + Math.round(11.68));
        System.out.println("负数:Math.round(-11.68)=" + Math.round(-11.68));
    }
}

以上就是本篇文章的所有内容,更多相关java实例敬请关注奇Q工具网了解详情。

推荐阅读:

java四舍五入取整数代码实例解析

java四舍五入方法,java四舍五入保留两位小数如何实现?