round fungsi

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

Mengembalikan expr yang dibulatkan menggunakan mode pembulatan HALF_UP.

Sintaks

round(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 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