실수로 floo + ESC를 치기 전까지 floorl (< #long double #>) 기능이 있다는 것을 알기 전까지는 항상 두 배로 생각했습니다. 따라서 긴 더블은 모든 큰 부정확성 문제에 대한 해결책입니까? ;-)iPhone OS에서 부동 소수점 계산을위한 가장 정확한 데이터 유형은 무엇입니까?
또는 그보다 더 정확한 정보가 있습니까?
실수로 floo + ESC를 치기 전까지 floorl (< #long double #>) 기능이 있다는 것을 알기 전까지는 항상 두 배로 생각했습니다. 따라서 긴 더블은 모든 큰 부정확성 문제에 대한 해결책입니까? ;-)iPhone OS에서 부동 소수점 계산을위한 가장 정확한 데이터 유형은 무엇입니까?
또는 그보다 더 정확한 정보가 있습니까?
NSDecimalNumber 클래스를 훨씬 더 정밀하게 보려면을 (를) 참조하십시오. 다른 의견에서와 같이 - 부정확 한 문제를 발견 했습니까? 또한 정확도가 더 느려집니다.
나는 long double
이 한계라고 생각하지만, 정말로 원하는대로 달라집니다. 실제로 부정확 한 문제에 부딪 혔습니까?
더 많은 정밀도를 추가하는 것이 문제를 해결하는 하나의 방법이지만 때로는 실제 문제 (보통?)가 계산을 수행하는 방식에 있습니다. 이 경우, 저는 건강한 RTFM을 금지합니다. FP 산술에 관한 모든 입문서는 왜 어떤 방정식이 비참한 지, 그리고 망각의 어지럽히는 것을 피하는 방법을 다룰 것입니다.
한 가지주의해야 할 점은 long double
은 iPhone 하드웨어에서 double
으로 동작한다는 것입니다. 더 큰 유형의 추가 정밀도는 없습니다. Simulator에서 더 정밀하게 처리 할 수 있습니다. Mac에서 실행되기 때문에 혼동을 일으킬 수 있습니다.
here (및 다른 주석 작성자)과 같이 NSDecimal 또는 NSDecimalNumber는 정밀도 (최대 34 자리)로 이동하는 방법이며이를 사용하여 수행 된 계산은 이진 부동 소수점이 아닌 실제 소수 수학으로 수행됩니다. 이렇게하면 일반적인 IEEE 754 수학에서 볼 수있는 많은 오류를 피할 수 있습니다.
더 정확하게는하지만 다른 수학을 수행합니다. 지식. – jtbandes
수학은 수학입니다. 다양한 정도의 (아주 작고 잘 정의 된) 퍼지 작업이 진행되고있는 부동 소수점 숫자와 달리 결과가 더 정확합니다. 재정적 인면에서 어떤 종류의 10 진수 클래스를 사용하는 것이 더 낫습니다 ... –