这对函数floor()/ ceil()和min()/ max()之间有什么区别?

hip*_*ail 9 max min floor ceil

我想说所有编程语言都有这些名称的函数来选择两个值中较小或较大的值:

  • min() & max()
  • floor()&ceil()/ceiling()

有些语言都有.JavaScript我相信是一个例子.

我对前一对和后一对之间的差异总是有点模糊.我有一种模糊的印象,min/ max更简单和floor/ ceiling更数学,但这并不多.

奇怪的是,我无法通过搜索Google在StackOverflow或Internet上的任何地方找到这个.那么,当您的编程语言同时提供这些函数时,是否有一些最佳实践或经验法则来决定使用哪些函数?

Oli*_*rth 14

这是苹果与橘子.在大多数语言/ API中,min/ max采用两个(或更多)输入,并返回最小/最大. floor/ ceil取一个参数,然后向下舍入或向上舍入到最接近的整数.

  • 钱币!看似显而易见!但我不会删除它,以防有像我这样的其他傻瓜谁想到同样的事情!`\ - :` (6认同)

Dea*_*nes 13

据我所知max,min用于集合,比如一组数字.Floorceiling用于单个数字.例如:

min(1, 2, 3, 4) => 1
max(1, 2, 3, 4) => 4
floor(3.5) => 3
ceiling(3.5) => 4
Run Code Online (Sandbox Code Playgroud)


Dr *_*eco 9

min(1, 2) == 1
max(1, 2) == 2

floor(3.9) == 3
round(3.9) == 4

ceil(3.1) == 4
round(3.1) == 3

trunc, as in (int)(3.xxx) = 3 (no matter what xxx is)
Run Code Online (Sandbox Code Playgroud)

在定义上:

floor是小于的最大整数n.

ceil是大于的最小整数n.


Don*_*lan 7

我意识到这篇文章很旧,但忽略了一个重要的区别。

函数 round() 向或远离零舍入,而函数 ceil() 和 floor() 向正无穷大和负无穷大舍入;

如果同时处理正数和负数,这一点很重要。IE

round(4.900000) = 5.000000
ceil(4.900000) = 5.000000
floor(4.900000) = 4.000000

round(4.100000) = 4.000000
ceil(4.100000) = 5.000000
floor(4.100000) = 4.000000

round(-4.100000) = -4.000000
ceil(-4.100000) = -4.000000
floor(-4.100000) = -5.000000

round(-4.900000) = -5.000000
ceil(-4.900000) = -4.000000
floor(-4.900000) = -5.000000
Run Code Online (Sandbox Code Playgroud)


小智 7

在 JavaScript 中:

  • Floor将数字向下舍入到最接近的整数。
  • Ceil将数字向上舍入到最接近的整数。
  • 舍入将数字舍入到最接近的整数。

function ceil() {
    var d = Math.ceil(5.1);

    var x = d + "<br>";
    document.getElementById("ceil").innerHTML = x; 
}

function floor() {
    var d = Math.floor(5.1);

    var x = d + "<br>";
    document.getElementById("floor").innerHTML = x; 
}

function round() {
    var d = Math.round(5.1);

    var x = d + "<br>";
    document.getElementById("round").innerHTML = x; 
}
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
<body>

<p>Click the different buttons to understand the concept of Ceil, Floor and Round</p>

<button onclick="ceil()">Ceil 5.1</button>
<p id="ceil"></p>

<button onclick="floor()">Floor 5.1</button>
<p id="floor"></p>

<button onclick="round()">Round 5.1</button>
<p id="round"></p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)