You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI中Double类型保留7位小数不自动舍入的实现方案

解决方案:精准控制格式化输出,无需修改变量类型

首先明确:不需要修改newLatitude的Double类型。Double的精度(53位二进制有效数字,对应约15-17位十进制有效数字)完全足够存储7位小数的地理坐标值,问题并非变量存储丢失精度,而是默认字符串插值的显示逻辑自动做了舍入简化。

你可以通过以下两种方式强制显示7位小数:

  • 方法1:使用String(format:)指定小数位数
    直接在Text组件中格式化输出,确保保留7位小数:

    Text(String(format: "%.7f", newLatitude))
    

    该写法会严格显示7位小数,即使末尾为0也会保留。

  • 方法2:使用SwiftUI原生格式化API(iOS 15+)
    更贴合SwiftUI风格的写法,通过精度配置实现:

    Text(newLatitude, format: .number.precision(.fractionLength(7)))
    

关于从Kotlin仓库取值的逻辑:保持newLatitude为Double类型即可,从Kotlin获取的Double值在内存中是精准存储的,默认插值的显示问题不会影响变量本身的数值,完全兼容共享仓库的需求。

内容的提问来源于stack exchange,提问作者dhaval123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:48:23