얼마전에 회사에서 어떤 분이 javascript에서 1 - 0.99 을 했는데 0.010000000000000009 이 나온다며 물어보셨다. (실제로는 비슷한 다른 거 였던 거 같은데 어쨌든..) 이는 부동소수점. 그러니까 float나 double 형에서 실수를 저장하는 방식 때문에 발생한다. 이런 내용은 조금만 검색하면 나온다. 하지만, 원인과 동작방식을 설명하는 글은 많지만 정작 실무에서 어떻게 처리하는게 좋을지에 대한 글이 없어서 여기에 남겨본다. 반올림, 올림, 내림 대부분의 부동소수점 문제는 소수점 아래의 값에서 발생한다. 많은 프로젝트에서는 사실 어느정도 오차가 있어도 문제없는 경우가 많다. 이럴 때에는 소수점 아래를 반올림, 올림, 내림해서 값을 정수로 만들어서 쓰면된다. 대부분의 언어에서 ..