Процессор iPhone 3G armv6 имел конвейерный модуль с плавающей запятой VFP, который имел более высокую пропускную способность, чем те же вычисления в целых числах. GCC поддерживает генерацию инструкций VFP, запланированных для конвейерной передачи. Процессор iPhone 3GS и iPhone 4 armv7 не имеет конвейерного модуля VFP и, таким образом, на некоторых последовательностях с плавающей запятой на самом деле немного медленнее, чем iPhone 3G; но процессор armv7 работает быстрее с векторной короткой плавающей запятой, потому что вместо него используется параллельный векторный блок NEON. Некоторые процессоры устройств Android вообще не имеют аппаратного модуля с плавающей запятой, поэтому ОС использует программную эмуляцию для FP, которая может быть более чем на порядок медленнее, чем целое число или число с фиксированной запятой.
Общее эмпирическое правило может заключаться в том, что если ваши алгоритмы могут работать только с 24-битной точностью мантиссы и не выполняют много преобразований между плавающей и целой числами, используйте короткую плавающую точку на iOS. Это почти всегда быстрее.
Но если вы хотите поддерживать старые устройства Android с вашим кодом C (используя NDK), используйте масштабированное целое число.
Если ваше приложение не использует много чисел, для типичного приложения, которое работает менее чем на 0,1%, ничто из перечисленного на самом деле не имеет заметного значения.