도저히 이해가...ㅠ 정보
도저히 이해가...ㅠ
본문
201 %100 = 1 이 맞죠.
그런데... 왜 (2.01*100) %100 = 0으로 나올까요? -_-;;;;
추천
0
0
댓글 6개

0.01 * 100 % 100 = 1
1.01 * 100 % 100 = 1
2.01 * 100 % 100 = 0
3.01 * 100 % 100 = 1
4.01 * 100 % 100 = 1
5.01 * 100 % 100 = 1
6.01 * 100 % 100 = 1
7.01 * 100 % 100 = 1
8.01 * 100 % 100 = 1
9.01 * 100 % 100 = 1
10.01 * 100 % 100 = 1
11.01 * 100 % 100 = 1
12.01 * 100 % 100 = 1
13.01 * 100 % 100 = 1
1.01 * 100 % 100 = 1
2.01 * 100 % 100 = 0
3.01 * 100 % 100 = 1
4.01 * 100 % 100 = 1
5.01 * 100 % 100 = 1
6.01 * 100 % 100 = 1
7.01 * 100 % 100 = 1
8.01 * 100 % 100 = 1
9.01 * 100 % 100 = 1
10.01 * 100 % 100 = 1
11.01 * 100 % 100 = 1
12.01 * 100 % 100 = 1
13.01 * 100 % 100 = 1

네 원래 소수점 계산은 그렇습니다......
제대로 나오지 않습니다.
제가 알기로는 내부적으로 이진 계산을 하기 때문일걸로 알고 있습니다.
http://php.net/manual/en/book.bc.php
여기에 있는 함수들로 계산해야 제대로 나옵니다.
bcmod(bcmul('2.01', '100'), '100');
제대로 나오지 않습니다.
제가 알기로는 내부적으로 이진 계산을 하기 때문일걸로 알고 있습니다.
http://php.net/manual/en/book.bc.php
여기에 있는 함수들로 계산해야 제대로 나옵니다.
bcmod(bcmul('2.01', '100'), '100');

답변 감사합니다.
여태 몰랐던거네요. -_-;;
여태 몰랐던거네요. -_-;;

자바스크립트도 동일한 문제가 있습니다.

콘솔로 찍어보니 그렇더라구요. 그래서 더 당황했었습니다. 2.01의 저주인가 싶었네요.

뭔지 잘 모르겠지만 이런 이유로 수학 전문 언어인 포트란 같은 게 있었나 봅니다.