Función bround

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Devuelve el valor expr redondeado mediante el modo de redondeo HALF_EVEN.

Sintaxis

bround(expr [,targetScale] )

Argumentos

  • expr: expresión numérica.

  • targetScale: expresión INTEGERconstante. Si se omite targetScale el valor predeterminado es 0 (número entero).

    En Databricks SQL y Databricks Runtime 12.2 LTS y versiones posteriores: si targetscale es un redondeo negativo se realiza en potencias positivas de 10.

Devoluciones

Si expr es DECIMAL, el resultado es DECIMAL con una escala que es el menor entre la escala de expr y max(targetScale, 0). Para todos los demás tipos numéricos el tipo de resultado coincide con expr.

En HALF_EVEN redondeo, el cual también se conoce como redondeo gaussiano o bancario, el dígito 5 se redondea hacia un dígito par.

Para el redondeo HALF_UP utilice la función round.

Para los tipos numéricos enteros Azure Databricks genera un error ARITHMETIC_OVERFLOW cuando el valor redondeado desborda el tipo de resultado.

Advertencia

En Databricks Runtime 12.2 LTS y versiones posteriores, y en Databricks Runtime si spark.sql.ansi.enabled es false, un desbordamiento no provoca un error, sino que "encapsula" el resultado en su lugar.

Condiciones de error comunes

Ejemplos

> 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 bround(cast(127 AS TINYINT), -1);
  Error: ARITHMETIC_OVERFLOW