Freigeben über


round-Funktion

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Gibt expr gerundet mit dem HALF_UP-Rundungsmodus zurück.

Syntax

round(expr [, targetScale] )

Argumente

  • expr: Ein numerischer Ausdruck.

  • targetScale: Ein INTEGER Ausdruck. Wenn targetScale ausgelassen wird, ist der Standardwert 0 (ganze Zahl).

    In Databricks SQL und Databricks Runtime 12.2 LTS und höher: Wenn targetscale negativ ist, wird die Rundung auf positive Potenzen von 10 ausgeführt.

Gibt zurück

Wenn exprDECIMAL ist, ist das Ergebnis DECIMAL mit einer Staffelung, die das kleinere der expr-Staffelung und targetScale ist. Für alle anderen numerischen Typen entspricht der Ergebnistyp expr.

Bei HALF_UP-Rundung wird die Ziffer 5 aufgerundet.

Verwenden Sie für HALF_EVEN-Rundungen die bround-Funktion.

Bei integralen numerischen Typen löst Azure Databricks einen Fehler ARITHMETIC_OVERFLOW aus, wenn der gerundete Wert den Ergebnistyp überläuft.

Warnung

Vor Databricks Runtime 12.2 LTS und wenn in Databricks Runtime spark.sql.ansi.enabledfalse ist, verursacht ein Überlauf keinen Fehler, sondern „umschließt“ stattdessen das Ergebnis.

Häufige Fehlerbedingungen

Beispiele

> SELECT bround(2.5, 0), round(2.5, 0);
 2    3

> SELECT bround(3.5, 0), round(3.5, 0);
 4    4

> SELECT bround(2.6, 0), round(2.6, 0);
 3    3

> SELECT bround(2.25, 1), round(2.25, 1);
 2.2  2.3

> SELECT bround(13.5, -1), round(13.5, -1);
 10   10

-- Rounding 127 to the nearest 10 produces 130, which overflows TINYINT.
> SELECT round(cast(127 AS TINYINT), -1);
  Error: ARITHMETIC_OVERFLOW