bround işlevi

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Yuvarlama modunu kullanarak expr yuvarlama HALF_EVEN döndürür.

Söz dizimi

bround(expr [,targetScale] )

Bağımsız değişkenler

  • expr: Sayısal ifade.

  • targetScale: INTEGER ifade. Atlanırsa targetScale varsayılan değer 0'dır (tamsayı).

    Databricks SQL ve Databricks Runtime 12.2 LTS ve üzerinde: Negatifse targetscale , pozitif güçlere 10yuvarlama gerçekleştirilir.

Döndürülenler

Eğer expr, DECIMAL ise, sonuç, DECIMALexpr ölçeği ve max(targetScale, 0) arasında daha küçük olanla aynı ölçekle elde edilir. Diğer tüm sayısal türler için sonuç türü ile eşleşir expr.

HALF_EVEN Gaussyan veya bankacı yuvarlama olarak da bilinen yuvarlamada, basamak 5 çift haneye doğru yuvarlanmış olur.

Yuvarlama için HALF_UP yuvarlak işlevini kullanın.

tam sayı türleri için Azure Databricks yuvarlatılmış değer sonuç türü taştığında bir ARITHMETIC_OVERFLOW hatası oluşturur.

Uyarı

Databricks Runtime 12.2 LTS ve altında ve spark.sql.ansi.enabledDatabricks Runtime'da taşma bir hataya neden olmaz, ancak sonucu "sarmalar".

Yaygın hata koşulları

Örnekler

> 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