Ios 是";将所有32位浮点操作作为64位浮点执行;是否与.net兼容?

Ios 是";将所有32位浮点操作作为64位浮点执行;是否与.net兼容?,ios,.net,visual-studio,xamarin,xamarin.ios,Ios,.net,Visual Studio,Xamarin,Xamarin.ios,在Xamarin.iOS项目属性中,在“iOS构建”下有一个选项:“将所有32位浮点操作作为64位浮点执行” 似乎说使用32位“影响精度,可能还影响兼容性”的方式不好,所以最好使用64位精度 但是VisualStudio中文本上的弹出窗口(当光标悬停在“将所有32位浮点操作作为64位浮点执行”上时)显示“使用64…与.net代码有点不兼容。” 那么是哪一个呢?您在第一点中误读了这句话。微软没有说使用32位是不好的,所以你需要使用64位。恰恰相反 基本上,最好使用64位浮点操作。默认情况下,它们是

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

似乎说使用32位“影响精度,可能还影响兼容性”的方式不好,所以最好使用64位精度

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


那么是哪一个呢?

您在第一点中误读了这句话。微软没有说使用32位是不好的,所以你需要使用64位。恰恰相反

基本上,最好使用64位浮点操作。默认情况下,它们是根据以下条件启用的:

虽然这一更高的精度更接近于开发人员对桌面和移动设备上C#浮点操作的期望,但性能影响可能是巨大的

让我们看看这是什么:

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

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


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

您可能是对的。因此,链接中的“启用此选项”并不意味着选中复选框。那太令人困惑了。谢谢。请记住,如果有些东西听起来让你感到困惑,你可以随时建议编辑,尤其是在文档中。您可以从页面本身提出建议:也可以通过GitHub——页面末尾有一个按钮。