Kategorien:

Numerische Funktionen (Rundung und Kürzung)

FLOOR

Gibt Werte aus input_expr zurück, die auf die nächste gleichgroße oder kleinere Ganzzahl oder auf den nächsten gleichgroßen oder kleineren Wert mit der angegebenen Anzahl von Nachkommastellen gerundet sind.

Siehe auch:

CEIL , ROUND , TRUNCATE , TRUNC

Syntax

FLOOR( <input_expr> [, <scale_expr> ] )
Copy

Argumente

input_expr

Der Wert oder Ausdruck, der verarbeitet werden soll. Der Datentyp sollte aus einem der numerischen Datentypen bestehen, z. B. FLOAT oder NUMBER.

scale_expr

Die Anzahl der Stellen, die die Ausgabe nach dem Dezimalpunkt enthalten soll. Der Ausdruck sollte eine Ganzzahl von -38 bis +38 ergeben.

Der Standardwert für scale_expr ist null. Das bedeutet, dass die Funktion alle Nachkommastellen entfernt.

Informationen zu negativen Skalierungen finden Sie in den folgenden Nutzungshinweisen.

Rückgabewerte

Der Datentyp des zurückgegebenen Werts ist NUMBER(Genauigkeit, Skalierung).

Wenn die Eingabeskalierung größer oder gleich Null war, stimmt die Ausgabeskalierung im Allgemeinen mit der Eingabeskalierung überein.

Wenn die Eingabeskalierung negativ war, lautet die Ausgabeskalierung 0.

Beispiel:
  • Der von FLOOR(3.14, 1) zurückgegebene Datentyp lautet NUMBER(4, 1).

  • Der von FLOOR(3.14, 0) zurückgegebene Datentyp lautet NUMBER(4, 0).

  • Der von FLOOR(33.33, -1) zurückgegebene Datentyp lautet NUMBER(5, 0).

Wenn die Skalierung Null ist, dann ist der Wert effektiv eine ganze Zahl.

Nutzungshinweise

  • Wenn scale_expr negativ ist, wird die Anzahl der Stellen vor dem Dezimalpunkt angegeben, an die die Zahl angepasst werden soll. Wenn die Skalierung beispielsweise -2 beträgt, ist das Ergebnis ein Vielfaches von 100.

  • Wenn scale_expr größer als die Skalierung des Eingabeausdrucks ist, hat die Funktion keine Auswirkungen.

  • Wenn entweder input_expr oder scale_expr den Wert NULL haben, lautet das Ergebnis NULL.

  • Wenn negative Zahlen abgerundet werden, ist der Wert weiter entfernt von 0. So ergibt beispielsweise FLOOR(-1,1) den Wert -2, nicht -1.

  • Wenn die Zahl durch das Abrunden außerhalb des Wertebereichs des Datentyps liegt, wird ein Fehler zurückgegeben.

Beispiele

In diesem Beispiel wird die Funktion ohne den Parameter scale_expr veranschaulicht:

SELECT FLOOR(135.135), FLOOR(-975.975);
+----------------+-----------------+
| FLOOR(135.135) | FLOOR(-975.975) |
|----------------+-----------------|
|            135 |            -976 |
+----------------+-----------------+
Copy

In diesem Beispiel wird die Funktion mit dem Parameter scale_expr veranschaulicht, einschließlich Skalierung mit negativen Zahlen:

Erstellen Sie eine Tabelle, und füllen Sie diese:

CREATE TABLE test_floor (n FLOAT, scale INTEGER);
INSERT INTO test_floor (n, scale) VALUES
   (-975.975, -1),
   (-975.975,  0),
   (-975.975,  2),
   ( 135.135, -2),
   ( 135.135,  0),
   ( 135.135,  1),
   ( 135.135,  3),
   ( 135.135, 50),
   ( 135.135, NULL)
   ;
Copy

Ausgabe:

SELECT n, scale, FLOOR(n, scale)
  FROM test_floor
  ORDER BY n, scale;
+----------+-------+-----------------+
|        N | SCALE | FLOOR(N, SCALE) |
|----------+-------+-----------------|
| -975.975 |    -1 |        -980     |
| -975.975 |     0 |        -976     |
| -975.975 |     2 |        -975.98  |
|  135.135 |    -2 |         100     |
|  135.135 |     0 |         135     |
|  135.135 |     1 |         135.1   |
|  135.135 |     3 |         135.135 |
|  135.135 |    50 |         135.135 |
|  135.135 |  NULL |            NULL |
+----------+-------+-----------------+
Copy