iNT 2

MSSQL) 계산 및 형변환 float -> int로 변환 시 1씩 차이나는 현상

특정 상품의 정가와 할인률을 계산하여 할인된 가격을 보여주려는데 종종 1원씩 차이나는 현상이 발생했다.  예를들어 10,000원에서 10%할인이 들어가면 9,000원이 나와야하는데 9,001원이 나오는 현상.... 구글링을 해도 잘 안나오고 겪어보지 않으면 절대 모를 일이기에 일단 정리해두려고 한다. (mssql이 사용 비중이 별로 없어서 그런것 같기도 하다.... 아마 이 글도 찾는 사람이 있을까 싶긴한데) 테스트해보니 mssql에서 float 형식을 int로 변환할 때 1씩 값이 증가되는 것을 보았다.  이건 형변환 할때도 마찬가지지만, float결과물을 int 타입의 컬럼에 insert할때도 마찬가지다.  분명 9,0000을 insert했는데, 컬럼 타입이 서로 다르면 9001로 들어가 있다.  그..

Database/MS-SQL 2023.07.27

c언어) 3. 자료형 int, float,char 등등

자료형이란 말 그대로 자료의 형태를 의미합니다. C언어는 변수 선언에 앞서, 그 변수에 어떤 형태를 담을 것인지 정해야 합니다. ​ 왜 자료의 형태를 정해야 할까요? 예를들어, 밀짚바구니에 액체를 담으면 밑으로 다 빠져나가고 작은 컵에 큰 과일을 넣을 수 없습니다. 그렇다고 엄청큰 상자에 방울토마토를 담으면 남는 공간이 많아서 버리는 공간이 많아집니다. ​ 컴퓨터의 메모리에는 한계가 있기에 공간을 효율적으로 사용하기 위해 필요한 만큼만 공간을 만들고(=자료형 선언) 이름을 붙이는겁니다(=변수 선언). 즉, 자료형을 정하는 것은 딱 맞는 공간을 만드는 것입니다. ​ 여기까지 자료형을 왜 선언하는지 이해하셨다면 자료형을 더 알아보도록 하겠습니다. ​ 한때 수포자였거나 예전에 배운것을 다 까먹은 분들을 위해(..

반응형