Xamarin.iOS 中的浮点运算

默认情况下,Xamarin.iOS 将使用 ARM 上的 64 位精度执行 32 位和 64 位浮点运算。

虽然这种更高的精度更接近于开发人员对在台式机上进行 C# 浮点运算的期望,但在移动设备上,性能影响可能很大。

可以编译 32 位浮点代码以使用 32 位浮点运算。 为此,可以取消选中 Visual Studio 的 iOS 生成属性页中的“按 64 位浮点执行所有 32 位浮点运算。”选项,或者将项目文件中的 MtouchFloat32 属性设置为 true(如果该属性尚不存在,请创建该属性):

<MtouchFloat32>true</MtouchFloat32>

这将通知静态编译器(Mono 的内置静态编译器或 LLVM 提供支持的静态编译器)使用 32 位浮点执行浮点运算。