round 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_UP döndürür.

Söz dizimi

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

Sonuçexpr, DECIMAL ve ölçeğin küçük DECIMAL olduğu bir ölçekle exprelde edilirtargetScale. Diğer tüm sayısal türler için sonuç türü ile eşleşir expr.

Yuvarlamada HALF_UP 5. basamak yukarı yuvarlanmış olur.

Yuvarlama için HALF_EVEN tazı 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 round(cast(127 AS TINYINT), -1);
  Error: ARITHMETIC_OVERFLOW