zoukankan      html  css  js  c++  java
  • 关于Math类的round、floor、ceil三个方法

    一、Math类这三个方法的简介

      1、round():取最接近的值。

       对于这个方法,查看源代码,其实现如下:

    1     public static long round(double a) {
    2         if (a != 0x1.fffffffffffffp-2) // greatest double value less than 0.5
    3             return (long)floor(a + 0.5d);
    4         else
    5             return 0;
    6     }

       也就是将该值加0.5,然后取floor值。

      2、floor():向下取整,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接去掉小数部分)。

      3、round():向上取整计算,它返回的是大于或等于方法参数,并且与之最接近的整数。

    二、示例

     1         //取最接近的值,将该值加0.5,然后取floor
     2         System.out.println(Math.round(11.7));// 12  11.7+0.5=12.3 floor(12.3)=12
     3         System.out.println(Math.round(11.5));// 12  11.5+0.5=12 floor(12)=12
     4         System.out.println(Math.round(11.3));// 11  11.3+0.5=11.8 floor(11.8)=11
     5         System.out.println(Math.round(-11.7));// -12  -11.7+0.5=-11.2 floor(-11.2)=-12
     6         System.out.println(Math.round(-11.3));// -11  -11.3+0.5=-10.8 floor(-10.8)=-11   
     7         System.out.println("=========================");
     8         // 向下取整,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接去掉小数部分)。
     9         System.out.println(Math.floor(11.7));//11   
    10         System.out.println(Math.floor(11.5));//11
    11         System.out.println(Math.floor(11.3));//11
    12         System.out.println(Math.floor(-11.7));//-12
    13         System.out.println(Math.floor(-11.3));//-12
    14         System.out.println("=========================");
    15         // 向上取整计算,它返回的是大于或等于函数参数,        //取最接近的值,将该值加0.5,然后取floor
    16         System.out.println(Math.round(11.7));// 12
    17         System.out.println(Math.round(11.5));// 12
    18         System.out.println(Math.round(11.3));// 11
    19         System.out.println(Math.round(-11.7));// -12
    20         System.out.println(Math.round(-11.3));// -11
    21         System.out.println("=========================");
    22         // 向下取整,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接去掉小数部分)。
    23         System.out.println(Math.floor(11.7));//11
    24         System.out.println(Math.floor(11.5));//11
    25         System.out.println(Math.floor(11.3));//11
    26         System.out.println(Math.floor(-11.7));//-12
    27         System.out.println(Math.floor(-11.3));//-12
    28         System.out.println("=========================");
    29         // 向上取整计算,它返回的是大于或等于函数参数,并且与之最接近的整数。
    30         System.out.println(Math.ceil(11.7));//12
    31         System.out.println(Math.ceil(11.5));//12
    32         System.out.println(Math.ceil(11));//11
    33         System.out.println(Math.ceil(-11.7));//-11
    34         System.out.println(Math.ceil(-11.5));//-11并且与之最接近的整数。
    35         System.out.println(Math.ceil(11.7));//12
    36         System.out.println(Math.ceil(11.5));//12
    37         System.out.println(Math.ceil(11));//11
    38         System.out.println(Math.ceil(-11.7));//-11
    39         System.out.println(Math.ceil(-11.5));//-11
  • 相关阅读:
    Struts2框架的学习遇到的问题1
    博客开通第100天
    RTK(Real Time Kinematic)实时动态差分定位技术
    HSRP 协议/ VRRP 协议(热备份路由协议)
    PKI 公钥基础设施
    路由器的工作原理
    VLAN基础知识
    Linux系统的 粘滞位、sgid和suid
    Kali Linux三步安装中文输入法(极简)
    ACL 包过滤技术
  • 原文地址:https://www.cnblogs.com/always-online/p/3711626.html
Copyright © 2011-2022 走看看