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()
実行します(とにかく整数のみを返します)。