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