Swift - 测量转换(到:)英里到英尺给出了错误的结果

2024-01-27

我一直在使用测量对象来转换大部分长度。但我有一个奇怪的问题。如果我将英里转换为英尺,我几乎会得到正确的答案。

import Foundation

let heightFeet = Measurement(value: 6, unit: UnitLength.feet) // 6.0ft
let heightInches = heightFeet.converted(to: UnitLength.inches) // 72.0 in
let heightMeters = heightFeet.converted(to: UnitLength.meters) // 1.8288 m

let lengthMiles = Measurement(value: 1, unit: UnitLength.miles) // 1.0 mi

let lengthFeet = lengthMiles.converted(to: UnitLength.feet) // 5279.98687664042 ft

// Should be 5280.0

除了最后一个长度英尺之外,它们都有效。在我的 Playground(Xcode 版本 9.2 (9C40b))中,它返回 5279.98687664042 ft。我还在常规应用程序构建中进行了测试,结果相同。

有什么想法吗?


基金会库中的“英里”单位定义不正确,如以下所示

print(UnitLength.miles.converter.baseUnitValue(fromValue: 1.0))
// 1609.34

其中作为正确值 https://en.wikipedia.org/wiki/Mile#International_mile is 1.609344。 作为基础库中该缺陷的解决方法,您可以定义 您的“更好”英里单位:

extension UnitLength {
    static var preciseMiles: UnitLength {
        return UnitLength(symbol: "mile",
                          converter: UnitConverterLinear(coefficient: 1609.344))
    }
}

并使用它给出预期的结果:

let lengthMiles = Measurement(value: 1, unit: UnitLength.preciseMiles)
let lengthFeet = lengthMiles.converted(to: UnitLength.feet)
print(lengthFeet) // 5280.0 ft

当然,作为亚历山大说 https://stackoverflow.com/a/49373502/1187415, 使用单位进行计算时可能会出现舍入误差,因为测量使用 二进制浮点值作为底层存储。 但造成“明显偏离”结果的原因是错误的定义 英里单位。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift - 测量转换(到:)英里到英尺给出了错误的结果 的相关文章

  • ExpandableLabel iOS 中的“少看”

    我正在使用第三方库可扩展标签 https github com apploft ExpandableLabel实施一个see more特征 我正在寻找仅快速的解决方案 其中包含标签中的文本而不是按钮中的文本 因此这可以完美地工作 添加库并更
  • Swift - 将图像插入 PDF 不再适用于 iOS 13

    目前正在开发在我的贷款计算器应用程序上导出 PDF 的功能 我有一个预览屏幕 可以在您保存 PDF 之前显示它 预览屏幕由带有 html 的 webView 组成 其中包含占位符 我能够成功地将图像插入到正确的占位符上 并将其显示在 PDF
  • 如何无限地每1分钟运行一个iOS应用程序?

    我制作了一个应用程序 需要每 1 分钟向服务器发送一次位置和状态更新 我尝试了以下方法 但没有一个能帮助我 有什么解决办法吗 1 NSTimer 很多人建议这样做 但问题出在后台模式上 它只能工作 20 分钟 该应用程序停止发送数据后 2
  • 在 Firebase 中构建聊天应用的数据

    我正在关注 Firebase 指南结构化数据 https firebase google com docs database ios structure data flatten data structures对于聊天应用程序 他们建议的结
  • SwiftUI - 预览时未知的预览提供程序“ContentView_Previews_”。发生在一个全新的项目中

    我有这个简单的观点 import SwiftUI struct ContentView View var body some View Text Hello struct ContentView Previews PreviewProvid
  • 如何在 Swift Playgrounds 中获得弹出对话框

    我想知道如何在 Swift 中弹出一个对话框游乐场 是的 必须在 Playgrounds 中 我尝试了以下代码 直接来自 AppleDevs 站点 然而 无论我如何尝试 self tag always抛出错误 谁能帮我这个 import U
  • 使用prepareForSegue传递数据

    我试图将数据从viewController 1传递到viewController2 我有2个按钮和1个segue 因此有一个segue标识符 这2个按钮 按下时每个按钮应显示 1个标签用于显示标题 1个textView用于显示定义 我很难显
  • iOS WKWebView 处理文件下载

    我面临以下问题 在 Web 界面中 文件下载是通过锚标记触发的 如下所示 a href bla blabla a 虽然 Safari 浏览器可以处理此请求并打开一个对话框来处理文件 但 WKWebView 将此视为普通链接并且不对其执行任何
  • 如何在 Swift 中使用 CoreBluetooth 更新 BLE 设备的电池电量?

    func peripheral peripheral CBPeripheral didDiscoverCharacteristicsFor service CBService error Error for c in service cha
  • Swift:检查 UISearchBar.text 是否包含 url

    如何检查 UISearchBar text 是否包含 URL 我想做这样的事情 if searchBar text NSTextCheckingType Link 但我收到错误 String is not convertible to NS
  • 针对 iOS 10.3 进行编译,但模块“SwiftUICharts”的最低部署目标为 iOS 13.0

    知道如何仅在 iOS 版本超过 iOS 13 时导入 SwiftUICharts 框架吗 我通过 文件 gt Swift 包 gt 添加包依赖项 添加了此框架 我的应用程序目标必须是 iOS 10 我将此框架导入到 swiftui 控制器中
  • 带约束的嵌套集合视图的意外行为 (Swift 4)

    我的表格视图中有一个单元格 其中包含水平分页集合视图 该集合视图的每个页面内都有一个垂直集合视图 为了避免 滚动滚动 问题 我在垂直集合视图中禁用了垂直滚动 垂直集合视图的单元格计数不是静态的 可以是任意数字 因此 这会产生一个问题 集合视
  • 如何将CIFilter应用到UIView上?

    根据Apple docs 过滤属性CALayer不支持iOS 当我使用正在申请的应用程序之一时CIFilter to UIView即 Splice Funimate 和 Artisto 的视频编辑器 Videoshow FX 这意味着我们可
  • iOS Swift 和 reloadRowsAtIndexPaths 编译错误

    我与 xCode Swift 陷入僵局并刷新 UITableView 的单行 这条线有效 self tableView reloadData 而这条线没有 self tableView reloadRowsAtIndexPaths curr
  • 领域:结果 和列表

    是否可以转换Results
  • 如何向 UIView 添加大小调整手柄?

    我试图根据用户请求在运行时动态创建视图 UIImageView 和 UITextView 然后允许用户移动它们并调整它们的大小 除了调整大小之外 我的一切都工作得很好 我尝试使用捏合手势识别器 但发现它对于我想要的东西来说太笨拙了 因此 我
  • 不明白 Swift 中的闭包示例

    我正在尝试了解 swift 和闭包 我被这个例子困住了 numbers map number Int gt Int in let result 3 number return result 什么是 number Int gt Int 它是一
  • 可以获取位置,但无法获取航向

    我目前只使用模拟器 但我在 iOS 模拟器上快速使用 CoreLocation 时遇到问题 我得到此代码打印的位置更新 但从未得到标题 我不想当然 我正在尝试制作一个指南针类型的应用程序 它将显示目标的方位 class CompassVie
  • iOS 防止计时器 UILabel 在数字变化时“晃动”

    我有一个UILabel它以以下格式显示计时器的输出MM ss SS 分 秒 厘秒 但是随着厘秒宽度的变化 它从左向右 摇动 例如 11 比 33 窄 有什么办法可以减轻这种情况吗 我尝试过将其居中 给它固定的宽度 但它们似乎没有帮助 从iO
  • AWS S3 公共对象与私有对象?

    回到 S3 我的存储桶中有图像的 URL 我将在我的应用程序中呈现这些图像 但它们被设置为私有 当我尝试单击该链接时 它显示 访问被拒绝 当我将链接的设置更改为公共时 它会通过 但是我读到公共访问并不是最安全的事情 所以这本质上是一个由两部

随机推荐

  • 为什么我的 datumTokenizer 从未被调用?

    我在 datumTokenizer 函数中放置了一个断点 但它似乎从未被调用 为什么不 它适用于仅远程数据吗 var engine new Bloodhound datumTokenizer function d return Bloodh
  • es6箭头函数调试器语句

    如果我有这样的功能 param gt params 1 我需要放一个debugger函数体内的语句 添加括号是这样的 param gt debugger return params 1 唯一的选择 来自MDN https developer
  • 内联安装 Chrome 扩展程序时出现“未捕获无效的 Chrome Web Store 项目 URL”

    我创建了一个 Chrome 扩展程序 并将其发布到 Chrome Webstore 上的测试人员组 当我尝试从我的网站加载 添加 扩展程序时 出现错误 未捕获无效的 Chrome 应用商店项目 URL 论方法Installer protot
  • Android 中的 CTL(复杂文本语言)支持

    我正在尝试为亚洲语言开发 Android IME 需要复杂的渲染 例如更改字形形式 重新排序字符顺序等 在PC中 使用GTK Pango Graphite就足够了 在 Android 中 如何解决复杂文本语言的 Unicode 渲染问题 提
  • ARKit:再现Project Point功能

    我正在尝试重现 ARCamera 的项目点函数 但由于某种原因 这些值没有正确匹配 我采用 ARCamera 的投影矩阵和视图矩阵 并应用基本的 CG 透视变换数学 PV p 但 NDC 值与 ARCamera 的项目点函数给出的像素值不匹
  • 如何从 SSMS 获取完整结果集

    如何获取 SQL Server Management Studio 中行的完整内容 如果您使用 结果网格 数据将被编码 因此换行符之类的内容会丢失 如果您执行 结果到文件 或 结果到文本 则文本限制为 8192 个字符 注意 我有解决方案
  • 设置为联系人铃声?安卓

    我正在尝试学习如何添加设置为联系人铃声功能 我已经知道如何设置默认铃声 但我不知道如何设置为联系人铃声 我到达了选择联系人的部分 但我不知道如何为该联系人分配铃声 这部分困扰着我 我似乎无法在已经提出的有关该主题的问题中找到答案 到目前为止
  • 执行 ajax 调用时序列化某个类型的对象时检测到循环引用

    在我看来 我使用的是 Viewmodel 并且我有一个表单 该表单只有一个接受日期的文本框 不是视图模型的一部分 和 3 个表 默认情况下 在页面加载时 表格中填充了基于今天日期的数据 您可以在下面的控制器代码中看到 但是如果用户选择日期并
  • 如何让机器在执行期间停止睡眠/休眠

    我有一个用 golang 编写的应用程序 部分 作为其操作的一部分 它将生成一个外部进程 用 c 编写 并开始监视 这个外部过程可能需要几个小时才能完成 因此我正在寻找一种方法来防止机器在处理时休眠或休眠 我希望能够放弃这个锁 以便当进程完
  • 有没有适用于 Windows 的开源 C 可视化调试器? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有适用于 Windows 的开源 C 可视化调试器 我听说过 Visual C Express 免费
  • JavaScript 中的谷歌 API

    我正在尝试使用 javascript 从 google 获取日历信息 我读过 如何做 手册 他们没有帮助 即使这个 有用的 复制粘贴代码 授权 也没有 有人能教我如何使用 google api 吗 也许有人有一些样本可以分享 还有这个漂亮的
  • C# 不发出“尾巴”是否存在技术原因。 CIL指令? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 net C 不消除尾递归 https stackoverflow com questions 491376 why doesnt net c eliminate tail recursion
  • 为什么在使用 p:uploadFile 上传文件后无法更新 p:graphicImage 两次

    我一直在尝试使用 p uploadFile 上传图像 第一次它工作正常 但在第一个上传文件之后 它不会更新 p graphicImage 但如果我重新加载页面 graphicImage 的值很好并且图像显示 所以 我认为这是 primefa
  • Python脚本执行但听不到正在播放的声音

    我正在使用 libvlc python 绑定来播放音乐文件 我的代码如下 import vlc instance vlc Instance Create a MediaPlayer with the default instance pla
  • 如何更改struts action中的url模式

    domain Forum show action pg 2 forum java 我如何将其重写为 domain forum java pg 2 从一开始就使用您喜欢的 URL 结构 映射到任何 URL 结构的能力是 Servlet API
  • ARM 系统上的 Bootrom 与引导加载程序有什么区别

    我主要来自 x86 系统背景 其中 BIOS 固件 负责从 PowerON 加载引导加载程序 如 GRUB 进而加载操作系统 我现在一直在阅读 ARM 系统上的等效启动顺序 网上似乎有文章提到了两个术语 bootrom 和 bootload
  • 如何将使用 numpy.fft.rfft 的代码从 python 移植到 C++?

    我有用 python 编写的代码 它使用 numpy 计算实际输入的 FFT 正部分 我需要将此代码移植到 C import numpy as np interp 131 107 133 089 132 199 129 905 132 97
  • 如何将样式应用于“td”标签的“标题”属性

    我有以下代码 并且想要自定义 title 属性的样式 有什么办法可以做到吗 提前致谢 td title Sample Title test td 这在很多年前可能是不可能的 但现在你可以设置 Title 属性的样式 请参阅here http
  • 无法找到入口点 mkl_blas_dgem2vu

    我正在运行 Anaconda Spyder 并且不断收到如图所示的英特尔数学库错误 似乎缺少 mkl blas dgem2vu 的入口点 无论那是什么 在我尝试更新所有内容之前 我仍然可以运行 Spyder 更新后 Spyder 收到此错误
  • Swift - 测量转换(到:)英里到英尺给出了错误的结果

    我一直在使用测量对象来转换大部分长度 但我有一个奇怪的问题 如果我将英里转换为英尺 我几乎会得到正确的答案 import Foundation let heightFeet Measurement value 6 unit UnitLeng