【问题标题】:Is "Perform all 32 bit float operations as 64 bit float" MORE or LESS compatible with .net?“将所有 32 位浮点操作作为 64 位浮点执行”与 .net 是否兼容更多或更少?
【发布时间】:2020-09-01 10:27:32
【问题描述】:

在 Xamarin.iOS 项目属性中,在“iOS Build”下有一个选项:“Perform all 32 bit float operations as 64 bit float”。

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

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

那是哪一个?

【问题讨论】:

    标签: ios .net visual-studio xamarin xamarin.ios


    【解决方案1】:

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

    基本上,最好使用 64 位浮点运算。它们默认启用,根据Floating Point Operations in Xamarin.iOS docs:

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

    让我们看看Code Analysis tool是什么:

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

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

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

    【讨论】:

    • 你可能是对的。因此,链接中的“启用此选项” 意味着选中复选框。这很令人困惑。谢谢。
    • 请记住,如果您觉得有些东西让您感到困惑,您可以随时提出修改建议,尤其是在文档中。您可以从页面本身提出建议:docs.microsoft.com/en-us/xamarin/ios/troubleshooting/… 或通过 GitHub - 页面末尾有一个按钮。
    猜你喜欢
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 2013-06-07
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多