首页 > 解决方案 > “将所有 32 位浮点操作作为 64 位浮点执行”与 .net 是否兼容更多或更少?

问题描述

在 Xamarin.iOS 项目属性中,在“iOS 构建”下有一个选项:“将所有 32 位浮点操作作为 64 位浮点执行”。

微软似乎说使用 32 位“会影响精度,可能还会影响兼容性”,所以最好使用 64 位精度。

但是 Visual Studio 中文本上的弹出窗口(将光标悬停在“将所有 32 位浮点操作作为 64 位浮点数执行”上时)显示“使用 64 ......与 .net 代码略有不兼容”。

那么是哪一个呢?

标签: ios.netvisual-studioxamarinxamarin.ios

解决方案


您误读了第一点中的陈述。微软并没有说使用 32 位不好,所以你需要使用 64 位。恰好相反。

基本上,最好使用 64 位浮点运算。它们默认启用,并根据Xamarin.iOS 文档中的浮点操作

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

让我们看看代码分析工具是什么:

Xamarin.iOS 分析是一组规则,用于检查您的项目设置,以帮助您确定是否有更好/更优化的设置可用。

因此,尽管最好使用 64 位浮点数,但这并不总是最佳选择。当您运行代码分析工具时,它会扫描您的项目以查看是否有更适合您的解决方案的配置(这取决于项目的流程)。

有时,64 位浮点数可能弊大于利。在这种情况下,linter 会用 警告您XIA0005: Float32Rule,这将建议您取消选中该选项,就像 Microsoft 的消息中所说的那样。


推荐阅读