Точность штатного калькулятора iOS
Идущий в составе iOS калькулятор выполняет операции в четверной точности (quad float, мантисса 112 бит, от 33 до 36 десятичных цифр), затем округляет результат по эстетическим соображениям. Например, количество отображаемых значащих цифр отличается в вертикальном режиме, горизонтальном режиме и при копировании в буфер обмена.
Можно в этом убедиться на примере дроби 1/9801, десятичное представление которой очень удобно для подобных экспериментов. Тут калькулятор iOS показывает 18 знаков после запятой.
Если вычесть из дроби показанное калькулятором округлённое значение то становится видно, что во внутреннем представлении цифр больше.
Таким способом можно вытащить 38 цифр после запятой. Если отбросить три ноля в начале, остаётся 35 значащих цифр мантиссы, как и обещано для четверной точности.
Как это сделано в Андроиде

Встроенный в Android калькулятор работает в конструктивных вещественных числах (Constructive Reals). Результат можно промотать влево, получив столько значащих цифр, сколько хочется. Они считаются на ходу. В коде конструктивные вещественные числа представлены не данными, а функциями, которые возвращают нужные значащие цифры по запросу.
Слева калькулятор Android до промотки, справа - после. Видно, что значащие цифры продолжают поступать по мере необходимости.
Теперь так можно и на iOS
Несмотря на то, что Hans Boehm давно опубликовал исходный код библиотеки работы с конструктивными вещественными числами com.hp.creal, мне не удалось найти готовый порт AOSP ExactCalculator на iOS. Пришлось сделать, благо нонче это дело нехитрое.


