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으로 조회되게 하고싶은데 말이죠ㅠㅠ
혹시 뭐가 잘못된걸까요?
두번에 걸쳐 변환하네요? nemeric > float > varchar 중간과정 float 을 없애 보세요.
칼럼 타입이 numeric(18,4) 인데 123.45678 이렇게 저장이 되나요?? 안될꺼 같은데요.
제 생각에는 실제로 저장된 값은 123.4568 (소숫점 5자리에서 반올림) 이고, FLOAT 으로 변환하셔서 123.457으로 나오는게 잘못된건 아닌거 같습니다.
실제로 123.45678 이렇게 저장되어 있는지 먼저 확인해 보시고, FLOAT 은 부동소숫점 이라 소숫점 처리가 변경될 수 있어서 꼭 필요한 경우에만 쓰시고, 일반적인 소숫점 처리는 numeric을 그대로 쓰시거나 decimal 사용하시는걸 권해드립니다.