이번 글을 보는 사람들은 이미 0.1 + 0.2의 결과를 보고 당황스러움을 경험했을듯 싶다. 눈을 의심해봤자 소용없다. 컴퓨터는 0.1 + 0.2를 계산하지못한다는걸 받아들이자. 조금더 정확하게 얘기하면 2진수는 10진수 0.1을 정확하게 변경 할 수 없게끔 만들어졌다. 이유는 다음과 같다. 우선, 몸풀기로 10진수 정수를 2진수로 변환해보면 5(10) -> 101(2) = 2^2 + 2^0 이다. 그럼 소수를 다뤄보자 0.5(10)을 2진수로 변경하면 0.1(2)이 된다. 뒤에 0.1은 2^-1 이다. 그러므로 0.01(2) -> 2^-2 -> 0.25 이다. 반면에 0.1(10)은 0.0001100110011... (2) 이다. (1/3을 십진수로 표시못하는 이유와 비슷하다) 즉 소수부분이 순환소수가 아니라 딱 떨어지는 수가 되려면 An = 1/2n 으로 표현되는 수들의 합으로 이루어지는 수가 되어야하고 그렇지 않는 수들은 전부 반올림이 필요한 소수가 된다. 결론적으로 소수 연산이 필요하다면 우선 정수로 변환을 해서 계산을하고 소수로 변경해줘야 할 듯 싶다.