mssql convert문의 0 2 719

by 니카 [SQLServer] float convert [2021.03.29 16:31:22]


mssql 사용중에 풀리지 않는게 있어서 염치없지만 문의드립니다.

numeric(18,4)으로 선언된 컬럼의 값을 convert해서 조회해오는데요.
SELECT CONVERT(VARCHAR, (CAST(123.45678 AS FLOAT))) 

출력값이 123.457으로 조회됩니다.

입력되어있는대로 123.45678으로 조회되게 하고싶은데 말이죠ㅠㅠ

혹시 뭐가 잘못된걸까요?

 

 

by 마농 [2021.03.29 17:07:59]

두번에 걸쳐 변환하네요?
nemeric > float > varchar
중간과정 float 을 없애 보세요.


by 뉴비디비 [2021.03.29 19:42:13]

칼럼 타입이 numeric(18,4) 인데 123.45678 이렇게 저장이 되나요?? 안될꺼 같은데요. 

제 생각에는 실제로 저장된 값은 123.4568 (소숫점 5자리에서 반올림) 이고, 
FLOAT 으로 변환하셔서 123.457으로 나오는게 잘못된건 아닌거 같습니다. 

실제로 123.45678 이렇게 저장되어 있는지 먼저 확인해 보시고, 
FLOAT 은 부동소숫점 이라 소숫점 처리가 변경될 수 있어서 꼭 필요한 경우에만 쓰시고, 일반적인 소숫점 처리는 numeric을 그대로 쓰시거나 decimal 사용하시는걸 권해드립니다. 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입