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()とは異なります 関数。値を指定された小数点以下の桁数に単純に切り捨てます。