Swift中Double转String失败:为何转换结果出现异常?
Double转String出现异常值的原因及解决方法
你用错了格式化占位符:%d是专门用于格式化**整数类型(Int)**的占位符,但你传入的是Double类型的94.1。这种类型不匹配会导致系统错误解析Double的内存数据,最终输出无意义的整数1717986918。
正确的处理方式
有几种常用的正确写法可以实现Double到String的转换:
指定小数位数的格式化输出
用%f(默认保留6位小数)或%.1f(指定保留1位小数)匹配Double类型:let aaa: Double = 94.1 let bbb = String(format: "%.1f", aaa ) print("bbb:", bbb ) // 输出 bbb: 94.1简洁的直接转换
不需要复杂格式化时,直接使用String初始化器:let aaa: Double = 94.1 let bbb = String(aaa) print("bbb:", bbb ) // 输出 bbb: 94.1Swift 5.5+的灵活格式化
使用formatted()方法支持更多格式控制:let aaa: Double = 94.1 let bbb = aaa.formatted() print("bbb:", bbb ) // 输出 bbb: 94.1
内容的提问来源于stack exchange,提问作者Doug Null
相关产品推荐
相关产品推荐

