sql >> データベース >  >> RDS >> MariaDB

MariaDB ROUND()とFLOOR()

    MariaDBにはROUND()があります 関数とFLOOR() いくつかの点で類似しているが、他の点ではまったく異なる機能。

    以下は、ROUND()の違いの概要です。 およびFLOOR() MariaDBで。

    違い

    簡単に言うと、各機能の違いは次のとおりです。

    • ROUND() 引数を指定された小数点以下の桁数に丸めます。
    • FLOOR() 引数以下の最大の整数値を返します。

    構文

    各関数の構文と定義は次のとおりです。

    ROUND()

    ROUND() 関数は、次の2つの方法で使用できます。

    ROUND(X)
    ROUND(X,D)

    ROUND() 引数Xを丸めます Dへ 小数位。丸めアルゴリズムは、Xのデータ型によって異なります。 。

    FLOOR()

    FLOOR() 関数は1つの構文でのみ使用できます:

    FLOOR(X)

    FLOOR() X以下の最大の整数値を返します 。

    違いの例

    ROUND()の違いを示すための比較を次に示します。 およびFLOOR()

    SELECT 
        FLOOR(3.6789),
        ROUND(3.6789);

    結果:

    +---------------+---------------+
    | FLOOR(3.6789) | ROUND(3.6789) |
    +---------------+---------------+
    |             3 |             4 |
    +---------------+---------------+

    この場合、ROUND() 次の桁(8)のため、関数は数値を切り上げました )が5より大きい 。

    FLOOR() 一方、関数は、引数(3.6789)以下の最大の整数値を返すだけです。 。

    2番目の引数

    もう1つの違いは、ROUND() オプションの2番目の引数を受け入れますが、FLOOR() しません。

    2番目の引数を使用すると、数値を四捨五入する小数点以下の桁数を指定できます。

    SELECT 
        FLOOR(3.6789),
        ROUND(3.6789, 2);

    結果:

    +---------------+------------------+
    | FLOOR(3.6789) | ROUND(3.6789, 2) |
    +---------------+------------------+
    |             3 |             3.68 |
    +---------------+------------------+

    同じ結果の例

    これらの関数は、同じ結果を返す場合があります。それはすべて、渡される引数の値に依存します。

    たとえば、値の前に負の符号を付けると、同じ結果が得られます。

    SELECT 
        FLOOR(-3.6789),
        ROUND(-3.6789);

    結果:

    +----------------+----------------+
    | FLOOR(-3.6789) | ROUND(-3.6789) |
    +----------------+----------------+
    |             -4 |             -4 |
    +----------------+----------------+

    負の値が常に同じ結果を返すと言っているわけではありませんが、そうではありません。それはすべて、提供される実際の値とROUND()によって行われる丸めに依存します 。

    負の値が異なる結果を生成する例を次に示します。

    SELECT 
        FLOOR(-3.3739),
        ROUND(-3.3739);

    結果:

    +----------------+----------------+
    | FLOOR(-3.3739) | ROUND(-3.3739) |
    +----------------+----------------+
    |             -4 |             -3 |
    +----------------+----------------+

    そして、正の値が同じ結果を返す例を次に示します。

    SELECT 
        FLOOR(3.3739),
        ROUND(3.3739);

    結果:

    +---------------+---------------+
    | FLOOR(3.3739) | ROUND(3.3739) |
    +---------------+---------------+
    |             3 |             3 |
    +---------------+---------------+

    TRUNCATE() 機能

    どちらの関数もTRUNCATE()とは異なります 関数。値を指定された小数点以下の桁数に単純に切り捨てます。


    1. SQLite外部キー

    2. SQL Serverはどの程度健全ですか?プロアクティブなデータベース監視が重要

    3. 子供のパーティーのデータモデル

    4. PostgreSQL:タイムスタンプフィールドに「いいね」が付いたデータを選択します