source

MySQL에서 가장 가까운 정수로 반올림하는 방법

manysource 2022. 10. 25. 17:53

MySQL에서 가장 가까운 정수로 반올림하는 방법

MySQL에서 가장 가까운 정수로 반올림하려면 어떻게 해야 합니까?

예:12345.7344 rounds to 12345

mysql의round()함수가 반올림합니다.

값이나 소수점 자릿수가 얼마나 길지 모릅니다. 10자리 숫자와 소수점 4자리 숫자, 2자리 숫자와 소수점 7자리 숫자일 수 있습니다.

플로어 사용:

SELECT FLOOR(your_field) FROM your_table

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 */

소수점을 상위 정수로 반올림하려면 천장()사용합니다.예:

SELECT CEILING(1.9) /* return 2 */
SELECT CEILING(1.1) /* return 2 */
SELECT FLOOR(12345.7344);

자세한 것은 이쪽.

SUBSTR보다 낫다FLOOR경우에 따라서는 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

FLOOR() 함수는 숫자보다 작거나 같은 최대 정수 값을 반환합니다.

example :
SELECT FLOOR(columnName) FROM tableName;

다음의 2가지 방법으로 실행할 수 있습니다.

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

두 번째 방법은 다음과 같습니다.12345.7344 정수를 가정합니다.따라서 12345.7344 - 0.5 = 12345.2344이고 반올림 결과는 12345가 됩니다.

이거 드셔보세요.

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

또는

SELECT FLOOR(12345.7344)

SQLFiddle 데모

소수점 이하가 필요한 경우는, 이것을 사용할 수 있습니다.

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

두 쿼리 모두 MySQL에서 가장 가까운 정수를 반올림하는 데 사용됩니다.

  1. 선택 플로어(445.6);
  2. 특수한 순서(222.456)를 선택합니다.

언급URL : https://stackoverflow.com/questions/12361220/how-to-round-down-to-nearest-integer-in-mysql