디비에는 0.1 로 잘 들어있는데 디비에서 값을 가져오면 0.1 이 아닌 0.1000001213 이런
이상한 숫자가가 나온다.
그 이유를 알려면 bit 와 byte 를 알아야하는데
8bit 는 1byte 이다.
컴퓨터는 이진법으로 정보를 받고 정보를 읽는다. 0과 1
0과 1은 전압이 있냐 없냐 인데 이걸 데이터를 표현하는 것이다.
1 bit = 2^1
2bit = 2^2
3bit =2^3
이런식으로 데이터 표현할수 있는 데이터의 양이 된다
1byte = 2^8
4byte = 2^32 즉 4,294,967,296 만큼 데이터를 표현할수 있는 것이다.
이렇게 데이터 타입이 있다.
Bloolean 값은 1bit 만 있어도 충분하지만 컴퓨터가 데이터 처리할때 최소 기준이 있어야
하기 때문에 최소 단위를 1byte 기준으로 하기 위해 Bloolean 은 1byte를
사용하게된다.
이렇게 데이터를 표현하는데 소수점을 표현할때가 문제인것이다.
정확히 데이터로 소수점을 표현하기가 어려운것이다.
나는 분명 0.1 를 입력했고 그걸 mysql 에 저장해서 0.1이 보였지만 그걸 불러오면
정확한 데이터를 받을 수 없어 0.1 뒤에 00000000123 이런식으로 해석해버리는것이다.
이게 또 데이터베이스 별로 다르고 어떤 언어를 쓰냐에 따라 조금씩 달라지기 때문에
데이터를 불러와서 뒤에 필요없는 부분을 제거해 주고 사용해야한다.
나는 지그 javascript 를 사용하기 때문에
$ toFixed()
함수를 사용하여 원하는 소수점까지 불러올수있다.
첫째 자리 까지만 필요하면
num.toFixed(1) 이런식으로 사용하면 된다.
기본적으로 bit , byte 정도의 기본지식을 가지고 있으면
프로그래밍의 도움이 된다고 하셨다.!!