MySQL에서 가장 가까운 정수로 반올림하는 방법
MySQL에서 가장 가까운 정수로 반올림하려면 어떻게 해야 합니까?
예:12345.7344 rounds to 12345
mysql의round()
함수가 반올림합니다.
값이나 소수점 자릿수가 얼마나 길지 모릅니다. 10자리 숫자와 소수점 4자리 숫자, 2자리 숫자와 소수점 7자리 숫자일 수 있습니다.
플로어 사용:
SELECT FLOOR(your_field) FROM your_table
그러면 소수점이 작은 정수로 반올림됩니다.예:
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에서 가장 가까운 정수를 반올림하는 데 사용됩니다.
- 선택 플로어(445.6);
- 특수한 순서(222.456)를 선택합니다.
언급URL : https://stackoverflow.com/questions/12361220/how-to-round-down-to-nearest-integer-in-mysql
'source' 카테고리의 다른 글
LEFT OUTER JOIN과 LEFT JOIN의 차이점 (0) | 2022.10.25 |
---|---|
생성된 열이 있는 테이블을 생성하면 오류가 발생합니다. (0) | 2022.10.25 |
MariaDB가 0.0.0에서 리슨하지 않음 (0) | 2022.10.15 |
기본 Python으로 brew installed Python을 사용하려면 어떻게 해야 하나요? (0) | 2022.10.15 |
string.replace에 regex를 입력하는 방법 (0) | 2022.10.15 |