bround fungsi

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Mengembalikan expr yang dibulatkan menggunakan mode pembulatan HALF_EVEN.

Sintaks

bround(expr [,targetScale] )

Argumen

  • expr: Ekspresi numerik.

  • targetScale: Ekspresi INTEGERkonstanta. Jika targetScale dihilangkan, defaultnya adalah 0 (bilangan bujur).

    Dalam Databricks SQL dan Databricks Runtime 12.2 LTS ke atas: Jika targetscale pembulatan negatif dilakukan ke kekuatan 10positif .

Mengembalikan

Jika expr adalah DECIMAL, hasilnya adalah DECIMAL dengan skala yang lebih kecil antara skala expr dan max(targetScale, 0). Untuk semua jenis numerik lainnya, jenis hasil cocok exprdengan .

Dalam HALF_EVEN pembulatan, juga dikenal sebagai Gaussian atau pembulatan bankir, digit 5 dibulatkan ke digit genap.

Untuk HALF_UP pembulatan, gunakan fungsi bulat.

Untuk jenis numerik integral Azure Databricks menimbulkan kesalahan ARITHMETIC_OVERFLOW saat nilai yang dibulatkan meluapkan jenis hasil.

Peringatan

Dalam Databricks Runtime 12.2 LTS dan di bawahnya, dan di Databricks Runtime jika spark.sql.ansi.enabled adalah false, luapan tidak menyebabkan kesalahan tetapi "membungkus" hasilnya sebagai gantinya.

Kondisi kesalahan umum

Contoh

> 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