나는 부동 소수점이 완벽하지 않다는 것을 안다. float
또는 double
이지만, 하나의 부동 소수점 수를 다른 수로 나눌 때 배수가 나누기로 나눌 수 있음을 의미한다 (예 : 10000.0이 10.0으로 나눌 수 있음) 미리 알림없이 .99999999 ... 끝에 작은 수의 올바른 결과보다 작은 숫자 만 얻을 수 있습니다. 그런 일이 부동 소수점에서 일어날 수 있습니까?부동 소수점 나누기 불완전
내가 floor
함수를 적용해야하기 때문에 알고 있어야합니다. 부동 소수점 구분이 실제로 불완전하면 큰 차이가 있습니다.
예 [모든 컴퓨터 과학자가 부동 소수점 연산에 대해 알아야 할 사항] [1]을 읽을 수 있습니다. [1] : http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html – 101010
C/C++ 표준에 따르면 구현 정의 동작입니다. 결과가 정확하다면 IEEE로 진행하면됩니다. 즉 '1000/10'은 결코'99.9999999'를 산출하지 않습니다. – Mysticial
100 % 정밀도를 원하면 합리적인 수 (정수 분자와 정수 분모로 구성)에 대한 모든 산술 연산을 지원하는 클래스를 설계하고 구현할 수 있습니다. 예를 들어, https://github.com/barakman/Num에서 완전히 테스트 된 클래스를 참조하십시오. –