14

すべてのプログラミング言語には、次の2つの値のうち小さい方または大きい方を選択するためのこれらの名前の関数があります。

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

そして、いくつかの言語には両方があります。JavaScriptはその一例だと思います。

前者のペアと後者のペアの違いについて、私はいつも少し曖昧でした。min/maxはより単純で、floor/はより数学的な印象を持っていますceilingが、それはそれほど進んでいません。

奇妙なことに、私はこれがStackOverflowやインターネットのどこでも一般的にGoogleを検索して議論されているのを見つけることができません。では、プログラミング言語が両方を提供するときに、これらの関数のどちらを使用するかを決定するためのいくつかのベストプラクティスまたは経験則はありますか?

4

8 に答える 8

16

これはリンゴ対オレンジです。ほとんどの言語/APIでは、min/ max2つ(またはそれ以上)の入力を受け取り、最小/最大を返します。 floor/ ceil1つの引数を取り、それを切り捨てるか、最も近い整数に切り上げます。

于 2012-03-15T17:27:37.490 に答える
14

私の知る限りmaxminコレクションで使用されているのは、数字の配列です。Floorceilingは単一の数値に使用されます。例えば:

min(1, 2, 3, 4) => 1
max(1, 2, 3, 4) => 4
floor(3.5) => 3
ceiling(3.5) => 4
于 2012-03-15T17:27:43.987 に答える
11
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)

定義について:

floorは、よりも小さい最大の整数ですn

ceilは、より大きい最小の整数ですn

于 2015-07-24T04:36:23.650 に答える
7

Javascriptの場合:

  • フロア数値を最も近い整数に切り捨てます。
  • 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; 
}
<!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>

于 2018-09-13T13:05:05.023 に答える
6

この投稿は古いと思いますが、重要な違いが見落とされています。

関数round()はゼロに向かって、またはゼロから離れて丸めますが、関数ceil()およびfloor()は正の無限大および負の無限大に向かって丸めます。

これは、正の数と負の数の両方を扱う場合に重要です。すなわち

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
于 2018-04-04T01:19:37.617 に答える
3

min()2つの値の小さい方または大きい方をmax()返します。たとえば、2つを超える値を実行する場合もあります。

min(3, 5);3を返します。

floor()ceiling()次のようにdoubleを整数に切り捨てます

floor(5.3);5を返します。

于 2012-03-15T17:29:35.087 に答える
3

私があなたの質問を理解しているかどうかわかりません。たとえば、次を参照してください。

a = 1.7
b = 2.8

min(a,b) = 1.7 (returns the minimum of a and b)
max(a,b) = 2.8 (returns the maximum of a and b)

floor(a) = 1 (rounds towards 0)
floor(b) = 2 (rounds towards 0)

ceil(a) = 2 (rounds up)
ceil(b) = 3 (rounds up)
于 2012-03-15T17:29:36.210 に答える
-1

javascriptのMath.floor()、Math.round()、Math.ceil()の違いについては、以下を考慮してください。

1- Math.floor(x)/ if x = 0.99 convert to = x = 0 /(xを最も近い整数に切り下げて返します)

2- Math.ceil(x)/ if x <0.1 x = 1 /に変換します/(xを最も近い整数に切り上げて返します)

3-1 - Mathh.round(x)/ if x <0.5 convert to x = 0 /
3-2- Mathh.round(x)/ if 0.5 <= x <1 convert to x = 1 /
(xを最も近い整数に丸めて返します)

于 2022-02-23T12:26:02.307 に答える