컴퓨터의 부동소수점의 정밀도 문제는 오래전 부터 알려진 사실이다.
자바스크립트에서도 그 예를 쉽게 찾을 수 있는데, 기록을 해놓지 않으면 예를 들 때 바로 생각해 내지 못하는 경우가 있어서 기록을 해둔다.
예)
> 0.1 + 0.2;
0.30000000000000004
이런 것은 결합법칙에서 문제가 된다. (A + B ) + C = A + (B + C)
> (0.1 + 0.2) + 0.3;
0.6000000000000001
> 0.1 + (0.2 + 0.3);
0.6
>
돈과 관련된 경우에는 정밀도는 민감한 사항이기 때문에 실수가 아닌 정수형으로 계산을 하라고 한다.
최소 단위를 일의 단위로 이용을 한다면 문제가 없다.
> (1 + 2) + 3;
6
> 1 + (2 + 3);
6
> ((1 + 2) + 3)/10;
0.6
> (1 + (2 + 3))/10;
0.6
'Programing > 웹' 카테고리의 다른 글
[JavaScript] 브라우저 크기 구하기 : 화면 해상도 구하기 (1) | 2014.04.18 |
---|---|
[JavaScript] 시각화(visualization) 라이브러리(그래픽, 차트 등) (2) | 2013.12.03 |
[JavaScript] null 값과 비교할 때는 반드시 비교 연산자로 === 또는 !==를 사용 (0) | 2013.10.17 |
[CSS] HTML5::Canvas 텍스트 흐림현상 (0) | 2013.01.26 |
[CSS] HTML&CSS 벤치마킹 (0) | 2012.12.23 |