2017-02-22 1 views

답변

1

이것은 이진 부동 소수점이 10 진수 표현으로 잘 변환되지 않기 때문입니다. 가정 64 비트 IEEE754 부동 소수점 :

0.1에 가까운 부동 소수점 수는 10.1에서 가장 가까운 부동 소수점 숫자 10.0999999999999996447286321199499070644378662109375이다 0.1000000000000000055511151231257827021181583404541015625

이다

넌 소수 부분은 실질적으로 다른 것을 볼 수

때문에 정확한 비교는 실패 할 것입니다.

귀하의 특정 사용 사례에 매우 부합하기 때문에 여기에서 구제 조치를 제안하는 것은 어렵습니다. (본능은 1e-13의 추가 공차를 비교할 수 있다고 제안합니다.)

+0

이 부록의 "0.1 %% 1 == round (10.1 %% 1, 1)"이 참이라는 것을 피하기 위해 소수점 1 자리로 반올림 할 수 있습니다. –

+2

'all.equal'은 이것도 같은 것으로 표시합니다. –

관련 문제