关闭

Math类四个常用方法辨析,floor、ceil、round、rint

114人阅读 评论(0) 收藏 举报
分类:

1.Math.floor

floor,英文原意:地板。
Math.floor 函数是求一个浮点数的地板,就是 向下 求一个最接近它的整数,它的
值肯定会小于或等于这个浮点数。

再看下面的例子的时候,脑中想象一个竖着的数轴,负数在下,正数在上。这样对于向上取整和向下取整的说法,可能会更容易理解。

例子:

        System.out.println("Math.floor(-1.1): " + Math.floor(-1.1));
        System.out.println("Math.floor(-1.5): " + Math.floor(-1.5));
        System.out.println("Math.floor(-1.6): " + Math.floor(-1.6));
        System.out.println("Math.floor(0.1): " + Math.floor(0.1));
        System.out.println("Math.floor(0.5): " + Math.floor(0.5));
        System.out.println("Math.floor(0.6): " + Math.floor(0.6));
        System.out.println("Math.floor(1.1): " + Math.floor(1.1));
        System.out.println("Math.floor(11.5): " + Math.floor(11.5));
        System.out.println("Math.floor(15.7): " + Math.floor(15.7));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

结果为:
Math.floor(-1.1): -2.0
Math.floor(-1.5): -2.0
Math.floor(-1.6): -2.0
Math.floor(0.1): 0.0
Math.floor(0.5): 0.0
Math.floor(0.6): 0.0
Math.floor(1.1): 1.0
Math.floor(11.5): 11.0
Math.floor(15.7): 15.0

2.Math.ceil

ceil,英文原意:天花板。
Math.ceil 函数执行的是 向上 取接近的整数,它返回的肯定会大于或等于函数参数。
例子:

        System.out.println("Math.ceil(-1.1): " + Math.ceil(-1.1));
        System.out.println("Math.ceil(-1.5): " + Math.ceil(-1.5));
        System.out.println("Math.ceil(-1.6): " + Math.ceil(-1.6));
        System.out.println("Math.ceil(0.1): " + Math.ceil(0.1));
        System.out.println("Math.ceil(0.5): " + Math.ceil(0.5));
        System.out.println("Math.ceil(0.6): " + Math.ceil(0.6));
        System.out.println("Math.ceil(1.1): " + Math.ceil(1.1));
        System.out.println("Math.ceil(1.5): " + Math.ceil(1.5));
        System.out.println("Math.ceil(1.6): " + Math.ceil(1.6));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

结果为:
Math.ceil(-1.1): -1.0
Math.ceil(-1.5): -1.0
Math.ceil(-1.6): -1.0
Math.ceil(0.1): 1.0
Math.ceil(0.5): 1.0
Math.ceil(0.6): 1.0
Math.ceil(1.1): 2.0
Math.ceil(1.5): 2.0
Math.ceil(1.6): 2.0

3.Math.rint

Math.rint 函数返回最接近参数的整数,如果有2个数同样接近,则会返回偶数的那个。

        System.out.println("Math.rint(-1.1): " + Math.rint(-1.1));
        System.out.println("Math.rint(-1.5): " + Math.rint(-1.5));
        System.out.println("Math.rint(-1.6): " + Math.rint(-1.6));
        System.out.println("Math.rint(0.1): " + Math.rint(0.1));
        System.out.println("Math.rint(0.5): " + Math.rint(0.5));
        System.out.println("Math.rint(0.6): " + Math.rint(0.6));
        System.out.println("Math.rint(1.1): " + Math.rint(1.1));
        System.out.println("Math.rint(1.5): " + Math.rint(1.5));
        System.out.println("Math.rint(1.6): " + Math.rint(1.6));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

结果为:
Math.rint(-1.1): -1.0
Math.rint(-1.5): -2.0
Math.rint(-1.6): -2.0
Math.rint(0.1): 0.0
Math.rint(0.5): 0.0
Math.rint(0.6): 1.0
Math.rint(1.1): 1.0
Math.rint(1.5): 2.0
Math.rint(1.6): 2.0

4.Math.round

round 方法,我们通常会说这个方法表示”四舍五入”,但是当参数为负数时,就不太好理解。
所以,以源码的计算方式来理解会比较准确。

源码大意:

 Math.round(x) = Math.floor(x + 0.5)
  • 1

即将原来的数字加上0.5后再向下取整。
例子:

        System.out.println("Math.round(-1.1): " + Math.round(-1.1));
        System.out.println("Math.round(-1.5): " + Math.round(-1.5));
        System.out.println("Math.round(-1.6): " + Math.round(-1.6));
        System.out.println("Math.round(0.1): " + Math.round(0.1));
        System.out.println("Math.round(0.5): " + Math.round(0.5));
        System.out.println("Math.round(0.6): " + Math.round(0.6));
        System.out.println("Math.round(1.1): " + Math.round(1.1));
        System.out.println("Math.round(1.5): " + Math.round(1.5));
        System.out.println("Math.round(1.6): " + Math.round(1.6));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

结果为:
Math.round(-1.1): -1
Math.round(-1.5): -1
Math.round(-1.6): -2
Math.round(0.1): 0
Math.round(0.5): 1
Math.round(0.6): 1
Math.round(1.1): 1
Math.round(1.5): 2
Math.round(1.6): 2

0
0
查看评论

Math类四个常用方法辨析,floor、ceil、round、rint

Math.floorfloor,英文原意:地板。 Math.floor 函数是求一个浮点数的地板,就是 向下 求一个最接近它的整数,它的 值肯定会小于或等于这个浮点数。再看下面的例子的时候,脑中想象一个竖着的数轴,负数在下,正数在上。这样对于向上取整和向下取整的说法,可能会更容易理解。例子: ...
  • hbwindy
  • hbwindy
  • 2016-05-11 17:51
  • 4156

C++中floor,ceil , round , rint用法

1.Math.floor floor,英文原意:地板。  Math.floor 函数是求一个浮点数的地板,就是 向下 求一个最接近它的整数,它的  值肯定会小于或等于这个浮点数。 再看下面的例子的时候,脑中想象一个竖着的数轴,负数在下,正数在上...
  • wordwarwordwar
  • wordwarwordwar
  • 2016-09-19 00:16
  • 1230

Math对象的几个取整方法(ceil,floor,round)

Math对象Math是javascript的一个对象,作用是执行一些常用的算术任务。取整取整方法有三种,ceil,floor,和round,分别对应把浮点数number取向大,向小,和最接近的整数。 example:var number=4.6; var a = Math.ceil(number)...
  • u012223913
  • u012223913
  • 2015-09-17 05:14
  • 378

Java Math类的三个方法ceil,floor,round

ceil()该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.6)的结果为-11;floor的英文是地板,该方法就表示向下取整,Math.floor(11.6)的结果是11,Math.floor(-11.4)的结果-12;最难掌握的是round方法,他表示...
  • zhaotengfei36520
  • zhaotengfei36520
  • 2014-08-12 13:55
  • 2348

轻松搞定Math.ceil,Math.round,Math.floor三者的区别

double a = 0.1; double b = 0.50; double c = 0; double d = 0.4; double e = 0.6; double f = 1.3; double ...
  • sinat_26710701
  • sinat_26710701
  • 2017-01-05 16:43
  • 969

取整函数(ceil、floor、round)

取整函数主要有三种:ceil()、floor()、round()先来说说ceil()函数ceil:在英文中,是天花板的意思,有向上的意思,所以,此函数是向上取整,它返回的是大于或等于函数参数,并且与之最接近的整数,在这里以java为例:package com.test;public class Ce...
  • aouixh
  • aouixh
  • 2016-12-06 10:12
  • 1287

ceil() floor() round()的用法

用法:   ? 1 2 3 4 5 6 7 #include   double ceil(double x);   double ...
  • caihongshijie6
  • caihongshijie6
  • 2013-10-24 15:38
  • 1419

Java Math的floor、ceil、rint及round用法

先上程序运行结果,然后再分析原因 一、源程序 public class Ceil_Floor_Round { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.ha...
  • u012050154
  • u012050154
  • 2016-09-06 11:40
  • 1555

std::floor和std:ceil简述

std::floor 和 std::ceil都是对变量进行四舍五入,只不过四舍五入的方向不同。  1: std::floor -->向下取整数 2: std::ceil   -->向上取整数: 例如: 5.88   std:...
  • dddd0216
  • dddd0216
  • 2017-12-02 13:55
  • 109

关于数据库ceil()函数,floor()函数,round()函数和trunc()函数

1,trunc()函数 trunc返回处理后的数值,其工作机制与round()函数极为类似,只是该函数不对指定小数前或后的部分做相应的舍入选择处理,而统统截取.其具体的语法格式:TRUNC(number[,decimals])其中: number 待处理的数值 d...
  • lihaibo112924
  • lihaibo112924
  • 2016-10-26 17:28
  • 2440
    个人资料
    • 访问:9095次
    • 积分:777
    • 等级:
    • 排名:千里之外
    • 原创:65篇
    • 转载:23篇
    • 译文:0篇
    • 评论:0条
    文章存档