NSDecimalNumber
разработан так, чтобы вести себя точно так же, как вы видите. Он использует «математику с основанием 10», чтобы избежать той самой проблемы, которую вы видите - традиционное представление чисел с плавающей запятой не может точно представлять базовые 10 чисел, которые мы привыкли писать.
Комментарий, инструктирующий вас «изучать численные методы», немного дерзкий, но он движется в правильном направлении. Лучшее использование вашего времени было бы (также) взглянуть на документацию для NSDecimalNumber
и подумать о том, что она делает и почему она существует.
Я никогда не слышал о NSDecimalNumber
пару минут назад, так что спасибо, что подсказали мне новые знания. : -)