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
相关产品推荐
相关产品推荐

