Приведение между float
и double
- это одна инструкция преобразования в обоих направлениях как на ARM, так и на x86.В некоторых случаях компилятор может исключить эти преобразования (когда он может доказать, что они не повлияют на результат вычисления), но это не будет иметь место в примерах, подобных тем, которые вы перечислили.
Таким образом, накладные расходы незначительны.Несколько дополнительных приведений на границах интерфейса высокого уровня не будут иметь заметного эффекта.Однако вы не хотите преобразовывать каждое значение в узком цикле, если можете избежать этого.