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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 13:03:23