Swift中打印Double类型时如何去除末尾的.0?
Swift中数值运算输出7.0而非7的原因及解决方法
原因分析
你定义的runningNumber、currentValue和total全都是Double类型(浮点型),哪怕赋值的是整数,浮点类型的本质就是带小数精度的数值,所以两个Double相加的结果自然是浮点值,打印时Swift会默认输出浮点型的完整格式,也就是7.0。另外你代码里的Double(runningNumber + currentValue)完全多余——两个Double相加的结果本来就是Double,没必要再做一次类型转换。
你的原代码:
var runningNumber:Double = 5 var currentValue:Double = 2 var total:Double = Double(runningNumber + currentValue) print(total)
解决方法
根据你的需求,有几种简单的处理方式:
- 直接转为整数类型打印:如果确定运算结果一定是整数,直接把结果转成
Int类型再打印;如果业务场景不需要浮点运算,也可以直接把变量定义为Int类型:// 转换已有Double结果 print(Int(total)) // 直接用Int类型定义变量 var runningNumber:Int = 5 var currentValue:Int = 2 var total:Int = runningNumber + currentValue print(total) - 格式化字符串输出:用格式化字符串指定只输出整数部分,即使是Double类型也能显示成整数:
print(String(format: "%.0f", total)) - 使用NumberFormatter(灵活格式化):如果需要更复杂的格式控制(比如千位分隔符),可以用NumberFormatter:
let formatter = NumberFormatter() formatter.numberStyle = .decimal formatter.maximumFractionDigits = 0 if let result = formatter.string(from: NSNumber(value: total)) { print(result) }
内容的提问来源于stack exchange,提问作者SwiftResearcher
相关产品推荐
相关产品推荐

