MySQLでは、ROUND()
関数を使用すると、数値を小数点以下の桁数に切り上げることができます。
それが機能する方法は、引数として数値を提供し、数値を四捨五入する小数点以下の桁数を選択するオプションがあります。小数点以下の桁数を指定しない場合、結果には小数点以下の桁数はありません。
構文
この関数は、次のいずれかの方法で使用できます。
ROUND(X) ROUND(X,D)
ここでX
は番号であり、D
四捨五入したい小数点以下の桁数です。 D
を省略した場合 、数値は小数点以下第0位に四捨五入されます。
また、D
負になる可能性があります。これにより、D
になります 値X
の小数点の左側の桁 ゼロになる。
例1-1つの引数を使用する
これは、2番目の引数を提供しない場合に何が起こるかを示す基本的な例です。
SELECT ROUND(1.49) Result;
結果:
+--------+ | Result | +--------+ | 1 | +--------+
この場合、数値は最も近い整数に切り捨てられます。
小数部分を増やすと、次のようになります。
SELECT ROUND(1.50) Result;
結果:
+--------+ | Result | +--------+ | 2 | +--------+
この場合、代わりに数値が切り上げられます。
例2–2つの引数の使用
2番目の引数を使用して、数値を四捨五入する小数点以下の桁数を指定する方法は次のとおりです。
SELECT ROUND(1.234, 2) Result;
結果:
+--------+ | Result | +--------+ | 1.23 | +--------+
最後の桁を5に増やすと、次のようになります。
SELECT ROUND(1.235, 2) Result;
結果:
+--------+ | Result | +--------+ | 1.24 | +--------+
もちろん、小数点以下の桁数をもっと多く使用することもできます。たとえば、小数点以下の桁数を大幅に減らすことができます。
SELECT ROUND(1.23456789123456789, 8) Result;
結果:
+------------+ | Result | +------------+ | 1.23456789 | +------------+
または、小数点以下の桁数を増やすこともできます。
SELECT ROUND(1.234, 8) Result;
結果:
+------------+ | Result | +------------+ | 1.23400000 | +------------+
例3–2番目の引数に負の値を使用する
2番目の引数に負の値を使用して、非小数部分の部分をゼロに丸める方法は次のとおりです。
SELECT ROUND(123.456, -1) Result;
結果:
+--------+ | Result | +--------+ | 120 | +--------+
3
を増やすと、次のように丸められます。 5
へ 以上。
SELECT ROUND(125.456, -1) Result;
結果:
+--------+ | Result | +--------+ | 130 | +--------+
例4–負の数と正の数の丸め
前の例で見たように、正の数を使用する場合、小数部が.5以上の値は、次の整数に切り上げられます。
ただし、負の数を使用する場合、そのような値は切り捨てられます 。
SELECT ROUND(1.50) Positive, ROUND(-1.50) Negative;
結果:
+----------+----------+ | Positive | Negative | +----------+----------+ | 2 | -2 | +----------+----------+
概算値の数値の丸め
上記の丸め規則は、正確な値の数値にのみ適用されます。近似値の数値の場合、結果はCライブラリによって異なります。 MySQLのドキュメントには、概算値の数値について次のように記載されています。
多くのシステムでは、これは
ROUND()
を意味します 「最も近い偶数に丸める」ルールを使用します。2つの整数のちょうど中間に小数部がある値は、最も近い偶数に丸められます。
そのページで使用されている例は次のとおりです。
SELECT ROUND(2.5), ROUND(25E-1);
結果:
+------------+--------------+ | ROUND(2.5) | ROUND(25E-1) | +------------+--------------+ | 3 | 2 | +------------+--------------+