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

MariaDB ROUND()とTRUNCATE()

    MariaDBにはROUND()があります 関数とTRUNCATE() 引数の正確な値に応じて、同じ結果または異なる結果を返すことができる関数。

    関数名が示すように、ROUND() ラウンド 番号とTRUNCATE() 切り捨て 番号。数値を切り捨てると、丸めを実行せずに単純に切り捨てられます。

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

    違い

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

    • ROUND() ラウンド 指定された小数点以下の桁数に対する引数。これにより、結果が切り上げられる場合と切り上げられない場合があります。
    • TRUNCATE() 単に切り捨てる 指定された小数点以下の桁数に対する引数。丸めは発生しません。

    構文と定義

    まず、各関数の構文と定義を次に示します。

    ROUND()

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

    ROUND(X)
    ROUND(X,D)

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

    TRUNCATE()

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

    TRUNCATE(X,D)

    TRUNCATE() 数値Xを返します 、Dに切り捨てられます 小数点以下。

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

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

    結果:

    +---------------------+------------------+
    | TRUNCATE(3.6789, 2) | ROUND(3.6789, 2) |
    +---------------------+------------------+
    |                3.67 |             3.68 |
    +---------------------+------------------+

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

    TRUNCATE() 一方、関数は、指定された小数点以下の桁数を単純に切り捨てます。 TRUNCATE() 丸めは行いません。指定した場所で番号を切り落とすだけです。

    どちらの関数も小数点以下の負の値を受け入れ、同じそれぞれのロジックが適用されます。

    SELECT 
        TRUNCATE(36789, -2),
        ROUND(36789, -2);

    結果:

    +---------------------+------------------+
    | TRUNCATE(36789, -2) | ROUND(36789, -2) |
    +---------------------+------------------+
    |               36700 |            36800 |
    +---------------------+------------------+

    同じ結果

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

    どちらも同じ結果を返す例を次に示します。

    SELECT 
        TRUNCATE(3.6749, 2),
        ROUND(3.6749, 2);

    結果:

    +---------------------+------------------+
    | TRUNCATE(3.6749, 2) | ROUND(3.6749, 2) |
    +---------------------+------------------+
    |                3.67 |             3.67 |
    +---------------------+------------------+

    この場合、ROUND() 次の桁(4)のため、数値を切り上げませんでした )5未満でした 。したがって、両方の結果は同じです。

    FLOOR() 機能

    どちらの関数もFLOOR()とは異なります 関数。引数以下の最大の整数値を返します。 FLOOR() ROUND()のような2番目の引数を受け入れません およびTRUNCATE() 実行します(とにかく整数のみを返します)。


    1. Oracleで行を削除する方法

    2. 動的SQLの結果はSQLストアドプロシージャの一時テーブルになります

    3. MariaDBとDockerのユースケース、パート1

    4. GiSTとGINインデックスの違い