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_UP.
Sintaks
round(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 hasilnya DECIMAL adalah DECIMAL dengan skala yang lebih kecil dari expr skala dan targetScale.
Untuk semua jenis numerik lainnya, jenis hasil cocok exprdengan .
Dalam HALF_UP pembulatan, digit 5 dibulatkan.
Untuk HALF_EVEN pembulatan, gunakan fungsi bround.
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 round(cast(127 AS TINYINT), -1);
Error: ARITHMETIC_OVERFLOW