MySQL에서 가장 가까운 정수로 어떻게 내림합니까?
예: 12345.7344 rounds to 12345
mysql의 round()
함수가 반올림됩니다.
값이나 소수점 이하 자릿수가 얼마나 길지 모르겠습니다. 10 자리가 될 수도 있고 4 자리가 될 수도 있고 2 자리가 될 수도 있고 7 자리가 될 수도 있습니다.
답변
답변
답변
답변
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
답변
다음 두 가지 방법으로 수행 할 수 있습니다.
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가됩니다.
답변
이 시도,
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