Java数学操作-Math类

Math类JDK中唯一一个专门的数学计算操作类。这里面有一些基础的数学计算函数,所在的包是:java.lang.Math.*

这个类提供了很多方法,都是用了static定义,可以通过类名称直接调用。其他的不多说了,主要说一下round的方法,实现四舍五入。

round方法实现四舍五入

该函数能够将小数转换成整数,并且四舍五入。示例如下:

public class MathDemo {
    public static void main(String args[]){
        System.out.println(Math.round(15.5));  //16
        System.out.println(Math.round(15.51));  //16
        System.out.println(Math.round(-15.5));  //-15
        System.out.println(Math.round(-15.51));  //-16
    }
}

观察上述代码会发现2个问题:

  • round方法是对小数截断后四舍五入的,处理后就没有小数了。
  • 对于小数位负数的处理比较特别:当小数部分大于等于-0.5,才会向下减一,否则即使是等于-0.5,也还是截断小数部分,不产生进位操作。

扩展:那么如何产生保留几位小数这样的操作呢?

原理: 由于round的操作是直接截断后四舍五入。以对234.211435要保留2位小数,那么比较好的办法就是对原来的数字乘100后截断,然后再除以100。按照这个思路,示例代码如下:

public class MathDemo {

    public static double myRound(double num, int scale) {
        return Math.round(num * Math.pow(10, scale)) / Math.pow(10, scale);
    }

    public static void main(String args[]) {
         System.out.println(myRound(123.3213451,2));
    }
}
保留2位小数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容