Java Math的 floor,round和ceil的总结

本文详细介绍了JavaScript中用于数学运算的floor、round、ceil函数的功能、用法及其区别,包括如何四舍五入、向下取整、向上取整等操作,并通过实例展示了这些函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

floor 返回不大于的最大整数 
round 则是4舍5入的计算,入的时候是到大于它的整数(当-1.5时可见,四舍五入后得到的结果不是我们期待的,解决办法是先对他取绝对值,然后在用round方法)

round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12Math.round(-11.5)的结果为-11


ceil 则是不小于他的最小整数 

ceil函数只要小数点非0,正数将返回整数部分+1,负数返回整数部分(带符号)

Math.ceil(3.0)返回3

看例子

Math.floor

Math.round

Math.ceil

1.4

1

1

1.5

1

1.6

1

-1.4

-2

-1 

-1 

-1.5

-2

-1 

-1 

-1.6

-2

-2 

-1 


测试程序如下:

public class MyTest { 
  public static void main(String[] args) { 
    double[] nums = { 1.4, 1.5, 1.6, -1.4, -1.5, -1.6 }; 
    for (double num : nums) { 
      test(num); 
    } 
  } 


  private static void test(double num) { 
    System.out.println("Math.floor(" + num + ")=" + Math.floor(num)); 
    System.out.println("Math.round(" + num + ")=" + Math.round(num)); 
    System.out.println("Math.ceil(" + num + ")=" + Math.ceil(num)); 
  } 
}


运行结果 
Math.floor(1.4)=1.0 
Math.round(1.4)=1 
Math.ceil(1.4)=2.0 
Math.floor(1.5)=1.0 
Math.round(1.5)=2 
Math.ceil(1.5)=2.0 
Math.floor(1.6)=1.0 
Math.round(1.6)=2 
Math.ceil(1.6)=2.0 
Math.floor(-1.4)=-2.0 
Math.round(-1.4)=-1 
Math.ceil(-1.4)=-1.0 
Math.floor(-1.5)=-2.0 
Math.round(-1.5)=-1 
Math.ceil(-1.5)=-1.0 
Math.floor(-1.6)=-2.0 
Math.round(-1.6)=-2 
Math.ceil(-1.6)=-1.0

========================

ceil

public static double ceil(double a)
返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。特殊情况如下:
  • 如果参数值已经等于某个整数,那么结果与该参数相同
  • 如果参数为 NaN、无穷大、正 0 或负 0,那么结果与参数相同。
  • 如果参数值小于 0,但是大于 -1.0,那么结果为负 0。
注意,Math.ceil(x) 的值与 -Math.floor(-x) 的值完全相同。

参数:
a - 一个值。
返回:
最小(最接近负无穷大)浮点值,该值大于等于该参数,并等于某个整数。

floor

public static double floor(double a)
返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。特殊情况如下:
  • 如果参数值已经等于某个整数,那么结果与该参数相同
  • 如果参数为 NaN、无穷大、正 0 或负 0,那么结果与参数相同。

参数:
a - 一个值。
返回:
最大(最接近正无穷大)浮点值,该值小于等于该参数,并等于某个整数。

round

public static int round(float a)
返回最接近参数的 int。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为 int 类型。换句话说,结果等于以下表达式的值:

(int)Math.floor(a + 0.5f)

特殊情况如下:

  • 如果参数为 NaN,那么结果为 0。
  • 如果结果为负无穷大或任何小于等于 Integer.MIN_VALUE 的值,那么结果等于 Integer.MIN_VALUE 的值。
  • 如果参数为正无穷大或任何大于等于 Integer.MAX_VALUE 的值,那么结果等于 Integer.MAX_VALUE 的值。

参数:
a - 要舍入为整数的浮点值。
返回:
舍入为最接近的 int 值的参数值。

round

public static long round(double a)
返回最接近参数的 long。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为 long 类型。换句话说,结果等于以下表达式的值:

(long)Math.floor(a + 0.5d)

特殊情况如下:

  • 如果参数为 NaN,那么结果为 0。
  • 如果结果为负无穷大或任何小于等于 Long.MIN_VALUE 的值,那么结果等于 Long.MIN_VALUE 的值。
  • 如果参数为正无穷大或任何大于等于 Long.MAX_VALUE 的值,那么结果等于 Long.MAX_VALUE 的值。

参数:
a - 舍入为 long 的浮点值。
返回:
舍入为最接近的 long 值的参数值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值