我是靠谱客的博主 机灵黄蜂,最近开发中收集的这篇文章主要介绍java的四舍五入操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

java 中的四舍五入操作

本文主要总结在java中常用到的两种四舍五入方法。
方法一使用简单,但是缺点在于需要注意负数时的进位模式,并且只能将小数进位为long型整数。
方法二较为复杂,但是可以在开发后当工具使用。好处在于:保留指定位数小数并且正数和负数在进位时规则保持一致。

  1. 在java.lang.Math类中定义一个用于四舍五入操作的方法: publicstaticlonground(doublea) ,但是使用该方法需要注意一点:如果是负数进行四舍五入,其小数位的数值如果$color{red}{小于等于5}不会进位,大于5才会进位。代码示例如下:
import java.lang.Math;
public class TestDemo
{
    public static void main(String [] args)
    {
        double a = 16.50;
        double b = 16.51;
        double c = -16.50;
        double d = -16.51;
        System.out.println(Math.round(a));
        System.out.println(Math.round(b));
        System.out.println(Math.round(c));
        System.out.println(Math.round(d));
    }
}

程序执行结果
17
17
-16
-17
通过程序执行结果,在使用round()方法进行四舍五入操作时,应注意都到这一点。
2. 使用BigDecimal类实现准确的四舍五入操作
BigDecimal类表示的是大小数操作类。要使用BigDecimal类完成准确的四舍五入运算,需要用到该类中的定义的如下常量和方法:

常量或方法类型描述
public static int ROUND_HALF_UP常量向上进位
public BigDecimal(double val)构造函数传递一个double型数据
public BigDecimal divvide(BigDecimal divisor, int scale, int roundingMode)普通函数除法操作,设置保留小数位数及进位模式

代码示例如下:

import java.math.BigDecimal;
class MyMath
{
    /**
     * @param num 进行四舍五入操作的小数
     * @param scale 指定保留小数位数
     */
    public static double round(double num, int scale)
    {
        BigDecimal big = new BigDecimal(num);
        BigDecimal result = big.divide(new BigDecimal(1), scale, BigDecimal.ROUND_HALF_UP);
        // 将BigDecimal型数据转换成double型数据并返回
        return result.doubleValue();
    }
}
public class TestDemo
{
    public static void main(String [] args)
    {
        double a = 16.5500;
        double b = 16.5510;
        double c = -16.5500;
        double d = -16.5510;
        System.out.println(MyMath.round(a, 1));
        System.out.println(MyMath.round(b, 1));
        System.out.println(MyMath.round(c, 1));
        System.out.println(MyMath.round(d, 1));

    }
}

程序运行结果:
16.6
16.6
-16.6
-16.6

可以将MyMath类写成一个单独文件,并打包jar包,包所在路径加入CLASSPARH中,即可当成工具使用。

最后

以上就是机灵黄蜂为你收集整理的java的四舍五入操作的全部内容,希望文章能够帮你解决java的四舍五入操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部