Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime
Mengembalikan expr yang dibulatkan menggunakan mode pembulatan HALF_EVEN.
Sintaks
bround(expr [,targetScale] )
Argumen
expr: Ekspresi numerik.targetScale: EkspresiINTEGERkonstanta. JikatargetScaledihilangkan, defaultnya adalah 0 (bilangan bujur).Dalam Databricks SQL dan Databricks Runtime 12.2 LTS ke atas: Jika
targetscalepembulatan negatif dilakukan ke kekuatan10positif .
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