97

MySQLで最も近い整数に切り捨てるにはどうすればよいですか?

例:12345.7344 rounds to 12345

mysqlのround()関数は切り上げます。

値も小数点以下の桁数もわかりません。小数点以下4桁で10桁、小数点以下7桁で2桁になる可能性があります。

4

8 に答える 8

137

FLOORを使用する:

SELECT FLOOR(your_field) FROM your_table
于 2012-09-11T00:32:08.253 に答える
61

FLOOR()を使用します。

小数点をより低い整数に丸めます。例:

SELECT FLOOR(1.9) /* return 1 */
SELECT FLOOR(1.1) /* return 1 */

その他の便利な丸め

小数を最も近い整数に丸める場合は、 ROUND()を使用します。例:

SELECT ROUND(1.9) /* return 2 */
SELECT ROUND(1.1) /* return 1 */

小数を上位の整数に丸める場合は、 CEILING()を使用します。例:

SELECT CEILING(1.9) /* return 2 */
SELECT CEILING(1.1) /* return 2 */
于 2015-10-07T05:53:37.120 に答える
4
SELECT FLOOR(12345.7344);

詳細はこちらをご覧ください

于 2012-09-11T00:32:42.493 に答える
3

SUBSTRFLOORには次のような「バグ」があるため、場合よりも優れFLOORています。

SELECT 25 * 9.54 + 0.5 -> 239.00

SELECT FLOOR(25 * 9.54 + 0.5) -> 238  (oops!)

SELECT SUBSTR((25*9.54+0.5),1,LOCATE('.',(25*9.54+0.5)) - 1) -> 239
于 2014-04-04T05:45:59.603 に答える
1

これは、次の2つの方法で実行できます。

  • select floor(desired_field_value) from table
  • select round(desired_field_value-0.5) from table

2番目の説明:12345.7344整数を想定します。したがって、12345.7344-0.5 = 12345.2344であり、結果を四捨五入すると12345になります。

于 2019-08-07T16:39:49.493 に答える
0

これを試して、

SELECT SUBSTR(12345.7344,1,LOCATE('.', 12345.7344) - 1)

また

SELECT FLOOR(12345.7344)

SQLFiddleデモ

于 2012-09-11T00:33:36.830 に答える
0

小数が必要な場合はこれを使用できます

DECLARE @Num NUMERIC(18, 7) = 19.1471985
SELECT FLOOR(@Num * 10000) / 10000

出力:19.147100クリア:985追加:00

またはこれを使用します:

SELECT SUBSTRING(CONVERT(VARCHAR, @Num), 1, CHARINDEX('.', @Num) + 4)

出力:19.1471クリア:985

于 2016-01-04T19:28:34.043 に答える
0

両方のクエリは、MySQLで最も近い整数を切り捨てるために使用されます

  1. SELECT FLOOR(445.6);
  2. SELECT NULL(222.456);
于 2021-01-13T15:28:03.133 に答える