ios - “将所有 32 位浮点操作作为 64 位浮点执行”与 .net 是否兼容更多或更少?
问题描述
在 Xamarin.iOS 项目属性中,在“iOS 构建”下有一个选项:“将所有 32 位浮点操作作为 64 位浮点执行”。
微软似乎说使用 32 位“会影响精度,可能还会影响兼容性”,所以最好使用 64 位精度。
但是 Visual Studio 中文本上的弹出窗口(将光标悬停在“将所有 32 位浮点操作作为 64 位浮点数执行”上时)显示“使用 64 ......与 .net 代码略有不兼容”。
那么是哪一个呢?
解决方案
您误读了第一点中的陈述。微软并没有说使用 32 位不好,所以你需要使用 64 位。恰好相反。
基本上,最好使用 64 位浮点运算。它们默认启用,并根据Xamarin.iOS 文档中的浮点操作:
虽然这种更高的精度更接近开发人员对桌面 C# 浮点运算的期望,但在移动设备上,性能影响可能很大。
让我们看看代码分析工具是什么:
Xamarin.iOS 分析是一组规则,用于检查您的项目设置,以帮助您确定是否有更好/更优化的设置可用。
因此,尽管最好使用 64 位浮点数,但这并不总是最佳选择。当您运行代码分析工具时,它会扫描您的项目以查看是否有更适合您的解决方案的配置(这取决于项目的流程)。
有时,64 位浮点数可能弊大于利。在这种情况下,linter 会用 警告您XIA0005: Float32Rule
,这将建议您取消选中该选项,就像 Microsoft 的消息中所说的那样。
推荐阅读
- php - 动态产品列表页面php
- php - Laravel 5.7.28 覆盖 getAuthPassword 仍然会引发未定义的索引:密码
- c# - 异步运行 C# WPF 事件
- batch-file - 如何在不转到每个窗口并执行 CTRL + C 的情况下终止许多生成的进程?
- assembly - 如何获得没有 NUL 字节的 objdump?
- javascript - 创建没有任何父级的树结构作为来自一级对象列表的输入
- google-apps-script - Open cell for editing in Google Sheets
- video - ffmpeg 从 m3u8 中选择特定语言的最高质量视频轨道和音频轨道
- javascript - 如何在 jQuery 中忽略对子元素的点击监听?
- python - 如何通过类名 python selenium 查找 id